PHP中的Jquery Ajax数据发布问题

时间:2010-12-13 15:22:51

标签: php jquery ajax

我在我的项目中使用jquery的AJAX。今天,我在其他地方使用了所有相同的方法,但它不起作用。

我的剧本有问题吗?

HTML:

<a class='btn edit_receipe_btn' id='myreceipe-52'>Edit</a>

JQuery的:

(点击功能有效。当我在alert(instance)行之后放var instance时,它可以正常工作)

$(document).ready(function(){
$('.edit_receipe_btn').click(function(){
   var instance = $(this).attr('id');
   var dataString = 'process=userReceipeEdit&instance='+instance;
   $.ajax({
    type: 'POST',
    url: 'ajax/ajaxs.php',
    data: dataString,
    cache: false,
    success: function(msg) {
        alert(msg);
    }
    });
});
});

PHP:

$prcs = $_POST['process'];
if($prcs=='userReceipeEdit'){
        $instance = $_POST['instance'];
        return $instance;
    }

问题出现在PHP中。我做错了什么?

4 个答案:

答案 0 :(得分:3)

这是整个PHP页面吗?如果是这样,你应该回应而不是返回

答案 1 :(得分:2)

正如Jasper De Bruijn通知我的那样,问题出在我的PHP脚本中。我应该使用echo而不是return: 错误的用法:

$prcs = $_POST['process'];
if($prcs=='userReceipeEdit'){
        $instance = $_POST['instance'];
        return $instance;
    }

正确使用:

$prcs = $_POST['process'];
if($prcs=='userReceipeEdit'){
        $instance = $_POST['instance'];
        echo $instance;
    }

答案 2 :(得分:0)

两件事,输出错误并检查以确保实例未定义。

输出如下错误:

$('.edit_receipe_btn').click(function(){
   var instance = $(this).attr('id');
   var dataString = 'process=userReceipeEdit&instance='+instance;
   $.ajax({
    type: 'POST',
    url: 'ajax/ajaxs.php',
    data: dataString,
    cache: false,
    success: function(msg) {
        alert(msg);
    },
    error: function(response, status, error)
    { 
        alert(response.responseText);
        alert(status);
        alert(error);
    }
    });
});

答案 3 :(得分:0)

我认为你已经把这个POST形成了一个get,不知道为什么。尝试在JS中执行此操作:

var dataString = 
    {
        "process" : "userReceipeEdit",
        "instance" : instance
    };