php - 无法访问 php $_POST 值

标签 php jquery mysql post echo

我有这个 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()获取 postidparents() 将为您提供所有匹配的祖先 array。这就是您在服务器端获取 Array() 的原因。

使用closest()而不是 parents()closest() 将为您提供第一个匹配的祖先。

postid = $(this).closest('.row').attr('id');

关于php - 无法访问 php $_POST 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31131701/

相关文章:

mysql - 一对多关系。如何提出要求?

php - Zend lucene 和 MySql 数据库

php - 1 周的每日平均值

jquery - 该页面的状态信息无效并且可能已损坏。 (仅在 IE 中)

javascript - 如何在不使用宽​​度和高度属性的情况下制作完整的 div?

MySQL:从唯一索引中省略空/空值

php - 如何复制 ArrayIterator 以保留其当前迭代位置?

php - preg_match_all 等效于 JS?

javascript - CSS选择 previous sibling

MySQL 主从复制