Php 无法通过ajax调用显示返回数据
我已经创建了一个查询,它以前工作过,但当我试图以json格式获取数据时,虽然它不工作,但我不知道为什么它不显示返回的数据。这是我的代码。当我检查控制台时,返回数据没有显示,尽管它没有被处理,我想是的,但是我无法纠正这个错误。谁能帮我一下吗Php 无法通过ajax调用显示返回数据,php,jquery,ajax,Php,Jquery,Ajax,我已经创建了一个查询,它以前工作过,但当我试图以json格式获取数据时,虽然它不工作,但我不知道为什么它不显示返回的数据。这是我的代码。当我检查控制台时,返回数据没有显示,尽管它没有被处理,我想是的,但是我无法纠正这个错误。谁能帮我一下吗 $(document).ready(function(e) { $("#addcart").on('submit', (function(e) { var oldval = $('#crtcount').text();
$(document).ready(function(e) {
$("#addcart").on('submit', (function(e) {
var oldval = $('#crtcount').text();
var form = this;
var formData = new FormData(this);
$.ajax({
url : "includes/get_data.php",
type : "POST",
data : formData,
contentType : false,
cache : false,
processData : false,
dataType : "JSON",
success : function(data) {
var data = $.parseJSON(data);
$('#crtcount').html(parseInt(oldval)+1);
$('#crtcount1').html(parseInt(oldval)+1);
$('#cart_dt').html(data.cart);
console.log(data.message);
}
});
}));
});
这是我为处理数据而创建的php代码
$qty = $_POST['qty'];
$pid = $_POST['pid'];
echo $cart->add_to_cart($pid);
$data['message'] = "<div class='message'>Your product is added to cart</div>";
$data['cart'] = '';
foreach($_SESSION['cart']['pid'] as $content) {
$prod_id = $content['prod_id'];
$products = bgMysqlSelect("SELECT * FROM bg_products WHERE pid = '$prod_id'");
$data['cart'] .= '<div class="items-sm"><div class="img-sm"><img src="../includes/uploads'.$products['pimage'].'" /></div>';
$data['cart'] .= '<div class="cart-inf-sm"><h4>'.$products['ptitle'].'</h4>';
$data['cart'] .= '<p><span>price :</span>$'.$products['pmsrp'].'</p>';
$data['cart'] .= '<p><span>Qty :</span>'.$content['qty'].'</p>';
$data['cart'] .= '<a href=""><i class="fa fa-times"></i></a></div></div>';
}
echo json_encode($data);
php文件中的问题 第一:不要用json_encode回显任何东西 第二:评论您的foreach循环,这可能是问题的原因 所以你的代码应该是这样的
$qty = $_POST['qty'];
$pid = $_POST['pid'];
//echo $cart->add_to_cart($pid);
$data['message'] = "<div class='message'>Your product is added to cart</div>";
$data['cart'] = '';
/*foreach($_SESSION['cart']['pid'] as $content) {
$prod_id = $content['prod_id'];
$products = bgMysqlSelect("SELECT * FROM bg_products WHERE pid = '$prod_id'");
$data['cart'] .= '<div class="items-sm"><div class="img-sm"><img src="../includes/uploads'.$products['pimage'].'" /></div>';
$data['cart'] .= '<div class="cart-inf-sm"><h4>'.$products['ptitle'].'</h4>';
$data['cart'] .= '<p><span>price :</span>$'.$products['pmsrp'].'</p>';
$data['cart'] .= '<p><span>Qty :</span>'.$content['qty'].'</p>';
$data['cart'] .= '<a href=""><i class="fa fa-times"></i></a></div></div>';
}*/
echo json_encode($data);
你能检查F12网络标签来了解你的php是工作还是工作吗not@hasan我检查了网络ab,我只看到了这一点,我不知道如何在网络选项卡中检查有关错误按f12,然后单击网络选项卡,然后单击XHR筛选器,您将看到XHR请求删除这一行echo$cart->add_to_cart$pid@Mohamed Yousef不,当我删除json_encode和echo only hello world并将数据类型更改为text t works for Me最后一个问题我必须运行此函数,因此如果我不编写echo,它是否会运行,因为我这样做只是为了将产品添加到cart$cart->add_to_cart$pid@乌斯曼汗:你肯定能用它。。如果此函数已经可以将数据保存到数据库中。。我不知道“添加到购物车”功能中包含什么,但您可以检查。。
$(document).ready(function(e) {
$("#addcart").on('submit', (function(e) {
e.preventDefault();
var oldval = $('#crtcount').text();
var form = $(this);
var formData = $(this).serialize();
$.ajax({
url : "includes/get_data.php",
type : "POST",
data : formData,
//contentType : false,
//cache : false,
//processData : false,
dataType : "JSON",
success : function(data) {
//var data = $.parseJSON(data); // I think there is no need for this line
$('#crtcount').html(parseInt(oldval)+1);
$('#crtcount1').html(parseInt(oldval)+1);
$('#cart_dt').html(data.cart);
console.log(data.message);
}
});
}));
});