2014-03-03 155 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