2014-03-03 210 views
0

我試圖在AJAX調用後得到一個獲得發佈值。首先我會告訴你我的AJAX代碼:Ajax發佈失敗或其他東西

$('#color').change(function(){ 

    var color = $('#color').find(':selected').text(); 
    var id = {$product_details.id}; 

    //alert({$product_details.id}); 
    //alert(color+id); 

    var url = 'http://myurl'; 

    $.ajax({ 

     url: url, 
     type: 'post', 
     data: {'color='+color+'&id='+id}, 
     success: function(msg){ 
      alert(msg); 
     } 
    }); 

}); 

我測試過我已經發布到正確的URL(上面沒有)。我已經通過alert測試了這些變量。這是我的PHP文件:

echo $_POST['color']; 

if(isset($_POST['color'])){ 
    echo 'hi'; 
    //get_unit(); 
} 

但我無法回顯$ _POST ['color']。可能是什麼問題呢?

+0

'數據:{ '色':顏色, 'ID':標識},'試試這個。 – Jai

回答

1

無需{}當你在查詢字符串傳遞後的數據,{}將被用來當你在物體發送數據時,請嘗試這種方式

data: 'color='+color+'&id='+id 

// OR

data : {"color" : color, 'id' : id} 

//

<script> 
    $('#color').change(function(){ 

     var color = $('#color').find(':selected').text(); 
     var id = {$product_details.id}; 

     //alert({$product_details.id}); 
     //alert(color+id); 

     var url = 'http://myurl'; 

     $.ajax({ 

      url: url, 
      type: 'post', 
      data: 'color='+color+'&id='+id, 
      // OR 
      // data : {"color" : color, 'id' : id} 
      success: function(msg){ 
       alert(msg); 
      } 
     }); 

    }); 
</script> 
2

試着改變:

data: {'color='+color+'&id='+id}, 

到:

data: {'color':color, 'id':id} 

因爲你已經使用POST方法。

+0

爲什麼要將'post'更改爲'POST'? – alexmac

+0

感謝您的回覆。但是,在我上面發佈的問題之前,我曾嘗試過這種方法,並且不知何故我的頁面甚至無法加載。 –

+0

會資本和小寫的事情嗎? –

1
  $.ajax({ 
      url:Url, 
      dataType: 'json', 
      contentType: "application/json", 
      type: "POST", 
      data: JSON.stringify({ 'color': color1 ,'Id':id1 }), 
      success: function (msg) { 
      alert(msg); 
       } 

試着使用這個format.color1和id1是你存儲你的數據的局部變量。

1

您可以有兩個變化嘗試:

改變這一點:

var id = {$product_details.id}; 

這樣:

var id = $product_details.id; 

,因爲你有一個對象的錯誤的語法這要麼是與{key:value}對,或者你應該按照上面的方法做改變。

,你應該這樣發表您的數據:

data: {'color':color, 'id':id}, 
+0

這不是這個大聲笑,因爲我使用Smarty,它只是顯示值,它不是一個關鍵的價值對的事情。 –

+0

那麼你應該已經附上了標籤smarty然後,然而,你有它的工作歡迎stackoverflow。 – Jai