Javascript AJAX不发送变量在txt上写入

Javascript AJAX不发送变量在txt上写入,javascript,php,ajax,Javascript,Php,Ajax,因此,经过多次尝试,我设法在代码中加入ajax,在同一个文件(index.php)上向php代码发送javascript变量值,但它不发送变量。我在这个网站上看到过两个类似的问题,但似乎没有一个能帮到我 这是javascript代码,它基本上向num添加+1,然后,我将keynum与num的值相同,并通过AJAX发送keynum(假定) num=1; keynum=1; 函数nextnum() { document.getElementById(“num”).innerHTML=parseIn

因此,经过多次尝试,我设法在代码中加入ajax,在同一个文件(index.php)上向php代码发送javascript变量值,但它不发送变量。我在这个网站上看到过两个类似的问题,但似乎没有一个能帮到我

这是javascript代码,它基本上向num添加+1,然后,我将keynum与num的值相同,并通过AJAX发送keynum(假定)


num=1;
keynum=1;
函数nextnum()
{
document.getElementById(“num”).innerHTML=parseInt(document.getElementById(“num”).innerHTML)+1;
keynum=document.getElementById(“num”).innerHTML;
警报(keynum);
$.ajax({
类型:“POST”,
async:true,
url:'index.php',
数据:{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();
  ?>

您没有从$\u POST正确获取参数。
您正在执行的是
$\u POST['keynum']
,它应该是
$\u POST['voteid']
,因为这是您在jour ajax中输入到POST参数的名称。

您正在ajax中发送数据,如下所示:

{voteid: keynum}
其中,voteid是键,value是keynum中的值

因此,您必须以
$\u POST['voteid']

如果您将来看到类似的问题,请使用
var\u 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);

希望有帮助。

你明确地设置了
{voteid:keynum}
,但是在PHP中你访问
$\u POST['keynum']
,你访问的是键
voteid
而不是
keynum
keynum
是值omg,我有点迟钝。它起作用了,我会把这个问题作为ajax工作代码的一个例子。@MiguelCasanova-如果这起作用了,就没有必要把它作为一个“工作例子”,互联网上已经有数百万人了,请不要使用贬义词,比如你在文章中描述自己的方式comment@MiguelCasanova是的,有时候会发生这种情况,我同意Sam的观点,不需要保留这个问题,因为已经有很多资源用于此类问题。如果出了什么问题,去喝杯咖啡,它会好起来的helps@MiguelCasanova-给你一个提示,我最喜欢的工具之一是最便宜的,买一只橡皮鸭,当某些东西不起作用时,一行一行地向鸭子解释,它通常会帮助你发现问题,你会在短时间内感到愤怒,但它有帮助!)
// in my index.php
function dd($v){
    var_dump($v); die();  
}

// where ever I want
dd($_POST);