1

我正在使用以下代码来使用 php 的返回值

if (isset($_POST['P_Id'])) {
    if (!isset($_SESSION['carted_products'])) {
        $_SESSION['carted_products'] = array();
    }//end if not set products array in session

    if (!in_array($_POST['P_Id'], $_SESSION['carted_products'])) {
        array_push($_SESSION['carted_products'], $_POST['P_Id']);
        echo "success";
    }//end if not in array
    else {
        echo "already_added";
    }
}//end if not set post value
else {
    echo "fail";
}//end else

现在在调用页面的 jquery 部分。我用

$.post(
    "add_to_cart.php",
    {P_Id:"<?php echo $row['P_Id'] ?>"},
    function(responseText){
        //if(responseText === "success"){
        //things to do on success
    }

但 if 不会返回 true。

现在,当我在 responseText 中检查“already_added”的索引时,它返回 6..

为什么会这样。

4

5 回答 5

0

您的回复中可能有空格,请尝试修剪它。

if($.trim(responseText) === "success"){
于 2013-05-15T03:29:49.760 回答
0

在 php 中尝试 echo '0' 等等。在 JS AJAX 上成功,做....

function(response) {
  if(response == 0) { //fail }
  if(response == 1) { //success }
}
于 2013-05-15T03:30:51.657 回答
0

您可能在 php 端回显了一些其他文本(在<?php.console.log(responseText);.$post

于 2013-05-15T03:31:20.720 回答
0

好吧,只是快速浏览一下,我发现您没有关闭您的 jquery 帖子,并且您的回声后没有分号。

$.post("add_to_cart.php",{P_Id:"<?php echo $row['P_Id']; ?>"},function(responseText){
    if(responseText === "success"){
        //things to do on success
    }
});
于 2013-05-15T03:33:36.120 回答
-1

我个人强烈建议以 JOSN 格式传输数据。我认为这将更安全且无错误。

于 2013-05-15T03:37:19.407 回答