我有一个错误
Warning: Undefined array key "data" in C:xampphtdocsphprecipe-container.php on line 9 ($product = $_POST["data"];)
Warning: Undefined variable $response in C:xampphtdocsphprecipe-container.php on line 24 (echo $response;)
我试图通过AJAX发送点击的div的ID(有"product"类的div(。Div ID名称似乎显示在网络选项卡中,但在PHP代码中未定义。
//AJAX (head HTML tag)
$(function () {
$('.product').on('click', function (e) {
var product = $(this).attr('id');
$.ajax({
type: "post",
url: 'php/recipe-container.php',
data: product,
processData: false,
contentType: false,
success: function(response) {
$(".display_recipe").html(response);
}
});
});
});
//HTML
<div class="product" id="pizza">pizza</div>
<div class="product" id="lasagna">lasagna</div>
<div class="product" id="sushi">sushi</div>
<div class="display_recipe">
<?php
require "php/recipe-container.php";
?>
</div>
//PHP (recipe-container.php)
<?php
function display(){
$con = mysqli_connect("localhost", "root", "", "cookbook");
echo "test";
$product = $_POST["data"];
$sql = "SELECT * FROM product WHERE name = '$product'";
$res = mysqli_query($con,$sql);
while($row = mysqli_fetch_assoc($res)) {
$name = $row['name'];
$description = $row['description'];
$date = $row['date'];
$response = $name.'<br>';
$response .= $description.'<br>';
$response .= $date.'<br>';
}
echo $response;
mysqli_close($con);
}
if ($_SERVER['REQUEST_METHOD'] === 'POST'){
display();
}
?>
我尝试将isset
和!empty
用于$_POST["data"];
,但没有成功。现在它显示";测试";,但没有别的。我该怎么修?
您必须将数据作为对象而不是变量发送:ajax请求内部:
data:{
data: product
},
processData:false,
这可能是您想要做的:
data: JSON.stringify{
data: product
})