如何将JS变量传递给PHP变量

时间:2015-07-27 10:14:53

标签: javascript php jquery ajax

这是我第一次涉足阿贾克斯,我很困惑。

问题: JS变量似乎没有通过Ajax传递给php。

我收到了这个通知:

  

注意:未定义的索引:文本输入   第31行的C:\ xampp \ htdocs \ Website \ ref_files \ delete.php

第31行是:makefile

所以问题似乎是' $name = $_POST['text'];'据我所知,是不是被传递给了php?

JS和PHP都在delete.php中,它包含在WhatsNew.php中。

我在页面上显示text,以及提示"成功"。

' text'中有一个值,我已使用alert(文本)对其进行了测试。

JavaScript + Ajax

Response:

PHP

<script>

var text = $('#title').text()

 $.ajax({
         url: "WhatsNew.php",
         type: "post",
         cache: "false",
         data: text,
         success: function(){
             alert("success");
         },
         error: function(){
             alert("failure");
         }
     });
</script>

如果需要更多信息,则会在此之后发布。

4 个答案:

答案 0 :(得分:2)

您需要将数据更改为:

data: {text: something},

并且还在js中更改变量的名称,因为编译器不知道要采用哪个文本,例如:

var something = $('#title').text();

如果这不起作用,请发表评论!

在php上尝试使用另一个文件,并成功响应:

<?php 
echo "hello"; 
$name = $_POST['text']; 
echo "<label id='1'>Response: " . $name . "</label>"; 
?> 

答案 1 :(得分:0)

你需要改变

data: text,

data: {text:text},

答案 2 :(得分:0)

您正在进行中,只需进行一项修改:

data: {text:text},

您需要发送text作为发布数据的关键。

答案 3 :(得分:0)

在尝试阅读$('#title').text()之前,您需要等待文档准备就绪。

只需将所有内容包装在$(function() {...}),(和其他人指出的data:{text:text})中。

$(function() {
    var text = $('#title').text();
    $.ajax({
        url: "WhatsNew.php",
        type: "post",
        cache: "false",
        data: {text:text},
        success: function(){
            alert("success");
        },
        error: function(){
            alert("failure");
        }
     });
});