2013-06-23 19 views
0

使用jQuery,PHP和MySQL,我寫的程序 得到ueprice:AJAX JSON返回語法錯誤:意外的標記,掙扎着要弄清楚它幾天

(1)拿到後successfuly價格
$ prices = array();
$ row = mysql_fetch_row($ res);
$ ueprice = intval($ row [0]);
$ pricetotal = $ ueprice * $ suryou;
$ selprice = round($ pricetotal * $ crate);
$價格=陣列(
'UNITP'=> $ ueprice,
'貯槽'=> $ pricetotal,
'sellp'=> $ selprice
);
(2)使用json_encode返回$價格
header('Content-Type:application/json');
echo json_encode($ prices);
退出;

(3)的JavaScript其中調用PHP是:
$(函數(){。
setPrices1d();
$( 「#selectQuantity1d」)上( 「變化」,setPrices1d);
}) ;

function setPrices1d() { 

$(document).ready(function()  
{  

    var grn = $('#main1d').val();  //get rank  
    var ghn = $('#sub1d option:selected').text(); //get hinban  
    var gkn = $('#detail1d').val();  //get kinou  
    var gch = $('#curtainH1d').val();  //get curtain height  
    var gcw = $('#curtainW1d').val();  //get curtain width  
    var gcr = $('#sellingRate1d').val();  //get customer_rate 
    var gsu = $('#selectQuantity1d').val();  //get suryou 

      var q = encodeURIComponent("drape");  
      var url = 'jsonprice.php?rank=' + grn + '&categ=' + q + '&hinban=' 
         + ghn +  '&kinou=' + gkn + '&curtainh=' + gch +  
         '&curtainw=' + gcw + '&crate=' + gcr + '&suryou=' + gsu;  
     $.ajax({  
     type: "GET",   
     url: url,  

     dataType: "json",  
     /** 
      * Ajax通信が成功した場合に呼び出されるメソッド  
      */ 
     success: function(data) {myObject=JSON.parse(data);}  
     {  
      //結果が0件の場合  
      if(data == null) alert('データが0件でした');  
      //返ってきたデータの表示  

      var $unitprice = $('#unitPrice1d');  
      var $sumprice = $('#sumTotal1d');  
      var $sellprice = $('#sellingPrice1d');  
      // clear input area 
      $unitprice.empty();  
      $sumprice.empty();  
      $sellprice.empty();  
      //set prices into text area 

      $unitprice.val(data[0].unitp);  
      $sumprice.val(data[0].sump);  
      $sellprice.val(data[0].sellp); 

       },  

     /**  
     * Ajax通信が失敗場合に呼び出されるメソッド 
     */ 
     error: function(XMLHttpRequest, textStatus, errorThrown) 
     { 
     alert('エラー : HttpReq= ' + XMLHttpRequest + ' textStatus =' + textStatus + ' errThrown =' + errorThrown + ' errThrown.message =' + errorThrown.message + ' HttpReq.status =' + XMLHttpRequest.status);  
     } 
    });  
});  

}

上述(4)$就返回以下錯誤: HttpReq = [對象的對象] errThrown =語法錯誤:意外令牌的 Httpreq.status = 200

( 5)找出我花了幾天的錯誤,但尚未解決。 使用谷歌瀏覽器, 網絡響應似乎對我好: 網絡Resonponce 陣列(8){ [ 「秩」] =>
串(1) 「S」 [ 「CATEG」] => 串(12) 「懸垂性」 [ 「hinban」] => 串(7) 「TKR8001」 [ 「kinou」] => 串(10) 「2倍ヒダ」 [ 「curtainh」] => 串(6)「45-120」 [「curtainw」] => string(5)「50-75」 [「crate」] => string(4)「0.90」 [「suryou」] => 字符串(1) 「3」 }

{ 「UNITP」:30000, 「油底殼」:90000, 「sellp」:81000}

我greately appricate你的建議對這個語法錯誤, 非常感謝!

+0

你可以嘗試使用curl來調用你的服務器來獲得你的結果嗎?我總是發現使用curl來檢查返回的內容是否有用。例如curl -v -H「Accept:application/json」-H「Content-type:application/json」-X POST -d'{「user」:{「first_name」:「firstname」,「last_name」:「lastname 「,」email「:」[email protected]「,」password「:」app123「,」password_confirmation「:」app123「}}'http:// localhost:3000/api/1/users –

回答

0

我找到了錯誤的原因(語法錯誤:意外的令牌),所以我想描述原因。

(1)錯誤發生在jsonprice.php的編碼中。 爲了進行調試,下面的代碼被寫入其中。 打印 「
SQL = $ SQL」
的var_dump($陣列)

語法錯誤,當我註釋掉這兩個值編碼停止。

(2)評論這些值編碼後, 我得到了另一個錯誤:
(遺漏的類型錯誤:無法讀取屬性未定義「UNITP」)

此錯誤的原因是該數組描述。 $ prices = array $ price [] = array < - []需要

之後,我得到了正確的結果。

+1

您的問題和答案因爲缺乏格式化,所以很難閱讀。請看看http://stackoverflow.com/editing-help,特別是http://stackoverflow.com/editing-help#code。 –

相關問題