提问人:Astw41 提问时间:8/7/2022 更新时间:8/8/2022 访问量:734
将 ID 名称发送到 php 变量 (AJAX) 时未定义的数组键 [duplicate]
Undefined array key when sending ID name to php variable (AJAX) [duplicate]
问:
我有一个错误
Warning: Undefined array key "data" in C:\xampp\htdocs\php\recipe-container.php on line 9 ($product = $_POST["data"];)
Warning: Undefined variable $response in C:\xampp\htdocs\php\recipe-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();
}
?>
我尝试使用 and for ,但没有用。现在它显示“测试”,但没有其他内容。我该如何解决?isset
!empty
$_POST["data"];
答:
-1赞
Konrad
8/7/2022
#1
这可能是你想做的:
data: JSON.stringify{
data: product
})
评论
1赞
Astw41
8/8/2022
还是同样的错误。现在在我的网络选项卡中:{data: “pizza”} data: “pizza”。
2赞
Developer Ali Usman
8/8/2022
#2
您必须将数据作为对象而不是变量发送: 在 ajax 请求中:
data:{
data: product
},
processData:false,
评论
0赞
Astw41
8/8/2022
什么都没有改变,仍然有一个错误。这是网络选项卡有效负载:[object Object]
评论
$product = file_get_contents("php://input");