无法将字符串从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消息,但实际输出要么是语法错误,要么是显示代码字符串。
答案 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 manual中data
和success
响应的更多信息
编辑: 另外,您还需要在此处删除花括号:
{document.getElementById("available").value = available;
这可能会导致JS语法错误。
答案 1 :(得分:1)
如果要打印回复,则不能说alert("<?php echo $respMsg; ?>");
您要做的实际上是在回调中获取数据并提醒该数据。
success: function(data){
alert(data);
location.reload();
},