因此,经过大量尝试,我设法将代码中的ajax压缩为将javascript变量值发送到同一文件(index.php)上的php代码中,但是没有发送变量。我在该网站上看到了两个类似的问题,但似乎没有一个对我有用。
这是javascript代码,它基本上为num加+1,然后,我将keynum与num值相同,并通过AJAX发送keynum(据说)
<script>
num=1;
keynum=1;
function nextnum()
{
document.getElementById("num").innerHTML = parseInt(document.getElementById("num").innerHTML) + 1;
keynum=document.getElementById("num").innerHTML;
alert(keynum);
$.ajax({
type: "POST",
async: true,
url: 'index.php',
data: {voteid: keynum},
});
}
这是PHP代码,基本上它接收ajax发送的值(据说),并创建一个具有keynum值的文本文件,但每次该文本文件都显示为空白。
<?php
$keynum = $_POST['keynum'];
$post = "INSERT INTO post (keynum) VALUES ($keynum)";
$fileLocation = getenv("DOCUMENT_ROOT") . "/num.txt";
$file = fopen($fileLocation,"w");
$content = $keynum;
fwrite($file,$content);
fclose($file);
echo 'Response';
die();
?>
答案 0 :(得分:1)
您没有从$ _POST正确获取参数。
您正在做$_POST['keynum']
,它应该是$_POST['voteid']
,因为这是您在jour ajax中添加到post param的名称
答案 1 :(得分:0)
您正在ajax中发送数据,如下所示:
{voteid: keynum}
其中,表决ID是键,值是键编号内的值。
因此,您将必须以$_POST['voteid']
的身份访问变量
如果将来遇到类似的问题,请使用var_dump
进行调试。
示例:
var_dump($_POST);die(); // prints the data inside the $_POST var
我使用的一个小功能:
// in my index.php
function dd($v){
var_dump($v); die();
}
// where ever I want
dd($_POST);
希望有帮助。