2012-12-14 101 views
0

我既是sencha又是ajax新手。我試圖從連接到mysql服務器的php文件返回一些數據。當我按下按鈕時,我觸發了一個Ajax請求。Sencha ajax打電話給php文件

這裏是當按下按鈕,我煎茶代碼........

onShow: function(){ 

     setInterval(function(){ 
      console.log("Server pinged"); 
      myRequest = Ext.Ajax.request({ 
      url: 'http://localhost/getpoi.php', 
      method: 'GET', 
      params: { 
       poiid: '3' 
      }, 
      callback: function(response) { 
       console.log(response.responseText); 
      } 
     }); 

     },5000); 
    }, 

我getpoi PHP文件代碼如下.......

<?php 
    $poiid = $_GET["poiid"]; 
    $lat; 
    $long; 
    $con = mysql_connect("localhost","root",""); 
    if (!$con) 
     { 
     die('Could not connect: ' . mysql_error()); 
     } 

    mysql_select_db("murmuration_db", $con); 

    $result = mysql_query("SELECT * FROM POI WHERE id=$poiid"); 

    while($row = mysql_fetch_array($result)) 
     { 
     $lat = $row['anchor_geolocation_lat']; 
     $long = $row['anchor_geolocation_lon']; 
     } 

    $response = $lat. ' '. $long; 
    echo $response; 
    return $response; 
    mysql_close($con); 

    ?> 

php文件正在工作,因爲如果我在文件本身中將set poiid更改爲3並在瀏覽器中打開它,我會得到該位置。但如果我通過按鈕在sencha應用程序中調用它,控制檯正確地記錄了「服務器ping」,但記錄的是「未定義」而不是座標。任何想法我做錯了什麼?

在此先感謝 一個

回答

0

看起來像你Ajax不是發送請求權。 試試這個:

setInterval(function(){ 
    console.log("Server pinged"); 
    myRequest = Ext.Ajax.request({ 
    url: 'http://localhost/getpoi.php?poiid=3', 
    method: 'GET', 
    callback: function(response) { 
     console.log(response.responseText); 
    } 
}); 

,以確保在加載按F12鍵,進入網絡,並期待請求。 ;) (Chrome上的Firebug或Inspect元素)

+0

感謝Éder對您的迴應,我嘗試了您的代碼,這對我來說很合理,但很不幸,它沒有解決問題。在網絡監視元素中它顯示getpoi.php文件的get方法沒問題。它似乎是返回部分不工作,因爲即使我將php中的poiid設置爲3,它不會將值返回給sencha應用程序,但如果我在瀏覽器中打開php文件,則會返回一個值。我難倒 – hotshots

+0

你解決了這個問題嗎? –

+0

還不怕。我剝離了php文件,只返回一個字符串,並簡化了調用php文件的請求,但控制檯仍然未定義日誌。如果我改變console.log(response.responseText);到console.log(response);控制檯記錄Object {url:「http://localhost/getpoi.php」,方法:「GET」}而不是undefined!不知道該怎麼辦! – hotshots