我有这个 jquery 函数,它将一个 div 的 ID 发送到一个 php 文件,然后再发送到一个 mysql 表。这工作正常但是我无法访问 php 文件中 $_POST 变量的值。我尝试用 print_r($favid)、var_dump($favid) 等来揭示它,但它们都返回类似“array ()”或“NULL”的内容。它正在工作,因为它在 mysql 表中更新得很好。
所以我的问题是,为什么 mysql 表正在接收值,但在 php 文件中尝试访问它时它是空的?
我对此很陌生,任何帮助将不胜感激。 谢谢。
J查询:
$("#button").click(function() {
postid = $(this).parents('.row').attr('id');
$.ajax({
url: "favourites.php",
method: "POST",
data: {
favourite: postid
},
success: function(result) {
alert('success');
}
});
});
PHP:
session_start();
if(isset($_SESSION['id']) AND isset($_POST['favourite'])){
$user = mysql_real_escape_string($_SESSION['id']);
$favid = mysql_real_escape_string($_POST['favourite']);
$query = mysql_query("SELECT * FROM ajaxfavourites WHERE user=$user AND favid=$favid");
$matches = mysql_num_rows($query);
// If it is not favourited, add as favourite
if($matches == '0'){
mysql_query("INSERT INTO ajaxfavourites (user, favid) VALUES ('$user', '$favid')");
}
// Instead, if it is favourited, then remove from favourites
if($matches != '0'){
mysql_query("DELETE FROM ajaxfavourites WHERE user=$user AND favid=$favid");
}
}
以上两个都有效,但我无法像下面那样获得 $favid 的值...
PHP:
echo $favid; // shows nothing
echo var_dump($favid); // shows 'NULL'
echo print_r($favid); // shows '1' it should be '3'
最佳答案
你不应该使用 parents()
获取 postid
。 parents()
将为您提供所有匹配的祖先 array
。这就是您在服务器端获取 Array()
的原因。
使用closest()
而不是 parents()
。 closest()
将为您提供第一个匹配的祖先。
postid = $(this).closest('.row').attr('id');
关于php - 无法访问 php $_POST 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31131701/