AJAX不发送变量以写入txt

时间:2018-06-27 08:19:45

标签: javascript php ajax

因此,经过大量尝试,我设法将代码中的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();
  ?>

2 个答案:

答案 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);

希望有帮助。