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 に答える
-1

個人的には、データを JOSN 形式で転送することを強くお勧めします。それはより安全でエラーのないものになると思います。

于 2013-05-15T03:37:19.407 に答える