这是我第一次涉足阿贾克斯,我很困惑。
问题: 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>
如果需要更多信息,则会在此之后发布。
答案 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");
}
});
});