【问题标题】:jQTouch loading external PHP not working proparlyiQTouch 加载外部 PHP 无法正常工作
【发布时间】:2011-06-04 12:56:45
【问题描述】:

我真的希望有人可以帮助我解决我的问题。因为我现在真的很困。 我正在尝试用 jQTouch 做一个 wepApp。我遇到的问题是从 mysql 数据库加载数据。它曾经可以工作,但后来我更新了 jQTouch 包以添加一些扩展。 所以现在最奇怪的事情正在发生。当我在 iPhone 上使用 safari 加载外部数据时,要加载 mysql 数据。但是,如果我将该页面添加到 iPhone 的主屏幕,它就可以工作。这怎么可能?

不管怎样,代码如下:

$(document).ready(function() {
 $("#admin li.arrow a, #kauf #adminAll, #tech #techAll, #dienst #dienstAll, #verkauf li.arrow a, #verkauf li.arrow a, #finanz li.arrow a, #informatik li.arrow a, #masch li.arrow a, #bau li.arrow a, #gewerbe li.arrow a, #med li.arrow a, #lebensmittel li.arrow a").tap(function (){
  var linkId = $(this).attr("id");
  //alert(linkId);
  $('#liste').empty(); 
  $.ajax({
    type: "GET",
    //cache: "false",
    url: "listJobs.php",
    data: "ajaxget=" + linkId,
     success: function(data) {
      //$("#liste").load(data);
      jQT.goTo('#liste');
    }
  });
   return false;
});     
});         

我也尝试编写一个 tap 函数,但我没有成功。所以如果有人可以给我一个指点,我也会高度评价它。

这里是php:

        <div class="toolbar">
         <h1>smart personal</h1>


<?
$kat=$_GET["ajaxget"];

echo  "<a class='back slide'>Zurück</a>
        <a class='button flip' id='infoButton' href='#home'>Home</a>
    </div>
    <div class='s-scrollwrapper' momentum='false' vScrollbar='false'>
      <div>";

echo "<ul class='rounded'>";
echo "<li class='suche'>Ihre Suche ergab <span class='zahl'>$numrows</span> Treffer</li>";





while($row = mysql_fetch_array($resultOutput)) {

$id=($row['stelleID']);
$datumsanzeige=($row['stelleDatumsanzeige']);
$datum=(date("d.m.y", strtotime($row["stelleDatum"])));
$today = date("d.m.y");

if($datumsanzeige == "fake")
    {
    $datumDef = "$today";
    }
  else
    {
    $datumDef = "$datum";
    }


// Print out the contents of each row into a table
    echo "<li><a href='stellenDetailiPhone.php?stelleID=$id'>";
    echo $row['stellePosition'];
    echo "</a><a class='nobg slide' href='stellenDetailiPhone.php?stelleID=$id'>";
    $stelleIDDetail = $row['stelleID'];
    $text=strip_tags (html_entity_decode($row['stelleStellenbeschrieb']));
// 0,100 show 100 Zeichen
    echo substr($text,0,50);
    echo "</a></li>";
    } 


echo "</ul></div></div>";

echo mysql_error();
mysql_close($con);

【问题讨论】:

  • 你也应该发布相关的PHP

标签: php ajax jqtouch


【解决方案1】:

看起来你的 jQuery 位没有对通过 AJAX 返回的数据做任何事情:

首先,检查 AJAX 调用是否正在返回任何数据。

1) 直接在浏览器中访问 URL 并查看结果。如果一切看起来都不错,那么...

2) 将您的 jQTouch 位调整为:

$(document).ready(function(){

  $("#admin li.arrow a, #kauf #adminAll, #tech #techAll, #dienst #dienstAll, #verkauf li.arrow a, #verkauf li.arrow a, #finanz li.arrow a, #informatik li.arrow a, #masch li.arrow a, #bau li.arrow a, #gewerbe li.arrow a, #med li.arrow a, #lebensmittel li.arrow a")
    .tap(function(){
      var linkId = $(this).attr("id");
      //alert(linkId);
      $('#liste').empty();
      $.ajax({
      type: "GET",
      //cache: "false",
      url: "listJobs.php",
      data: "ajaxget=" + linkId,
      success: function(data) {
        console.log( data );
        //$("#liste").load(data);
        jQT.goTo( '#liste' );
      }
    });
    return false;
  });

});

并使用您的(假设是 iPhone/iPod/iPad 的)调试控制台对其进行测试 - 转到“设置”>“Safari”>“开发人员”>“调试控制台”为“开启”。如果调用 AJAX 操作并返回数据,您应该会在浏览器窗口顶部看到一条消息。

此外,您正在使用(或已注释掉)使用 jQuery $.load() 函数的调用。该函数基本上为您执行 AJAX 操作,您只需为其提供要填充的容器和要填充的 URL(以及可选的元素)。因此,您可能会发现以下内容同样可以轻松完成这项工作:

$(document).ready(function(){

  $("#admin li.arrow a, #kauf #adminAll, #tech #techAll, #dienst #dienstAll, #verkauf li.arrow a, #verkauf li.arrow a, #finanz li.arrow a, #informatik li.arrow a, #masch li.arrow a, #bau li.arrow a, #gewerbe li.arrow a, #med li.arrow a, #lebensmittel li.arrow a")
    .tap(function(){
      $("#liste").load( 'listJobs.php?ajaxget='+$(this).attr("id") );
    return false;
  });

});

正如我之前提到的,您的 #liste 元素似乎正在被清空,但没有通过 AJAX 调用添加新内容 - 如果/当 AJAX 调用成功时,您只是移动到该元素。

无论如何,这是您能够继续调试/故障排除的开始。

【讨论】:

  • 嗨卢卡诺斯感谢您的回答。我用 firebug 在 Firefox 中测试了代码,一切正常,没有错误。然后我把它改成了点击功能。并且在移动设备上使用 safari 并在顶部使用 dev 东西,我只会从 jqt.bars.js 收到一大堆控制台通知。但它完全想使用点击功能。
  • 我真的很喜欢第二个代码选项!如果它可以工作,那会更简单更酷,但是一旦我使用水龙头,事情似乎对我根本不起作用......???
  • 对不起,又是我!如果我使用单击而不是 .tap 那么它适用于您的第二个选项,但再次仅使用主屏幕上保存的图标,而不是直接在 safari 中并且它似乎会跳转,它会加载然后重新加载以获取信息...
  • 仍在尝试寻找解决方案,使用 .tap 玩了一遍,发现现在即使是简单的警报也可以使用 .tap。我还发现,如果我删除
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 2015-11-15
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多