将字符串从php传递到js函数

时间:2019-01-30 13:40:07

标签: javascript php json ajax

无法将字符串从php页面传递到另一个页面的js函数。

在检查添加项是否存在于数组中后显示消息。我尝试在警报语句中添加引号或不添加引号     1.在警报语句中加引号,javascript不会转换该语句,而只是直接显示它。     2.警告声明中没有引号,Chrome表示如果没有引号,则是错误。

add_product.php(js函数):

function add_to_cart(){
  jQuery('#modal_errors').html("");
  var error='';
  var available =$("#size option:selected").data("available");
  var quantity = jQuery('#quantityInput').val();
  {document.getElementById("available").value = available;
     var data = jQuery('#add_product_form').serialize();
     jQuery.ajax({
        url : 'cart.php',
        method : 'post',
        data : data,
        success: function(){
            alert("<?php echo $respMsg; ?>");
            location.reload();},
        error : function(){alert("something wrong");}
                });
        return;
}

cart.php:

if ($duplicate==false){
    $respMsg="The item is in cart now.";
} else {
    $respMsg="You have added the item twice.";
}

我希望js msgbox弹出窗口显示任一php消息,但实际输出要么是语法错误,要么是显示代码字符串。

2 个答案:

答案 0 :(得分:1)

首先,您需要在cart.php中使用返回$respMsg结果的函数,然后使用来自jQuery.ajax函数的data响应来警告消息:

jQuery.ajax({
   url : 'cart.php',
   method : 'post',
   data : data,
   success: function(data){
              alert("Message: " + data);
              location.reload();
            },
   error : function(){
             alert("something wrong");
            }
});

有关jQuery manualdatasuccess响应的更多信息

编辑: 另外,您还需要在此处删除花括号:

{document.getElementById("available").value = available;

这可能会导致JS语法错误。

答案 1 :(得分:1)

如果要打印回复,则不能说alert("<?php echo $respMsg; ?>");

您要做的实际上是在回调中获取数据并提醒该数据。

success: function(data){
            alert(data);
            location.reload();
},