Ajax变量没有传递给php

时间:2014-10-03 11:54:06

标签: php jquery ajax

我希望将ajax中cityField的值传递给$ _POST ['cityField']。一切看起来都是有序但变量没有传递到nextpage.php上的php

 <script type="text/javascript">
$('#city').blur(function() {
    var cityField=$('#city').val();
    $.ajax({
        type:"post",
        url:"nextpage.php",
        data:{'cityField':cityField },
        dataType:"html",
        success:function(data) {
            alert("You typed:"+cityField);
        }
    });
});
 </script>  

3 个答案:

答案 0 :(得分:1)

它很简单。改为:

...
data:$('#city').serialize()
...

或完全使用它:

<script type="text/javascript">
$('#city').blur(function() {
    var $this=this;
    $.ajax({
        type:"post",
        url:"nextpage.php",
        data:$($this).serialize(),
        dataType:"html",
        success:function(data) {
            alert("You typed:"+cityField);
        }
    });
});
 </script>

了解更多信息,请参阅:http://api.jquery.com/serialize/

答案 1 :(得分:0)

不要使用&#39; cityField n#39;作为对象。因为数据包含格式为data {object:value}的参数。 使用此:

<script type="text/javascript">

$('#city').blur(function() {
var cityField=$('#city').val();
$.ajax({
    type:"post",
    url:"nextpage.php",
    data:{myobj:cityField },
    dataType:"html",
    success:function(data) {
        alert("You typed:"+cityField);
    });
</script>  

然后在服务器端检索myobj。

答案 2 :(得分:0)

在您的成功功能中,您将获得nextpage.php在名为data的var中发送的数据。您正在警告cityfield变量。

所以改变你的成功功能就像这样:

....
success: function (data) {
    console.log('This is the answer of nextpage.php : '+ data;
}
...

除此之外,将数据剥离到$.ajax电话以外的对象可能是个好主意:

var myPostData = {};
myPostData.cityField = $('#city').val();

....
data: myPostData,
....