jQTouch加载外部PHP无法正常工作

时间:2011-06-04 12:56:45

标签: php ajax jqtouch

我真的希望有人可以帮我解决我的问题。因为我真的被困了。 我正在尝试用jQTouch做一个wepApp。我所拥有的truble是从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);

1 个答案:

答案 0 :(得分:0)

看起来你的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)调试控制台进行测试 - 转到设置&gt; Safari&gt;开发人员&gt;调试控制台为ON。如果调用了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调用成功时,你只是转移到该元素。

无论如何,您可以继续进行调试/故障排除。