jQTouch загружает внешний PHP не работает - PullRequest
2 голосов
/ 04 июня 2011

Я действительно надеюсь, что кто-то может помочь мне с моей проблемой.Потому что я действительно застрял прямо сейчас.Я пытаюсь сделать wepApp с помощью jQTouch.У меня есть проблема с загрузкой данных из базы данных MySQL.Раньше он работал, но затем я обновил пакет jQTouch, чтобы добавить некоторые расширения.Так что сейчас происходит самое странное.Когда я загружаю внешние данные с помощью сафари на iPhone, данные 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;
});     
});         

Я также пытался написать функцию касания, но у меня ничего не вышло.Так что, если бы кто-нибудь мог дать мне указатель на это, я бы также высоко оценил его.

А вот 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 голосов
/ 04 июня 2011

Похоже, ваш бит jQuery ничего не делает с данными, возвращаемыми через AJAX:

Прежде всего, проверьте, возвращаются ли какие-либо данные при вызове AJAX.

1)Перейдите по ссылке прямо в браузере и посмотрите на результаты.Если все выглядит хорошо, то ...

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 не добавляется новый контентcall - вы просто переходите к этому элементу, если / когда вызов AJAX успешен.

В любом случае, вы сможете продолжить отладку / устранение неполадок.

...