我一直在尝试通过在线学习各种教程和示例来学习基本的AJAX和Javascript,但我已经碰壁了。我正在尝试编写一个简单的脚本,使用AJAX从表单中获取用户输入并将其提交给PHP脚本,然后只回显输入。
我真正能说的是,无论输入的是什么都没有通过,但我还没有达到我能说出原因的地步。我已尝试使用POST和GET,以及各种dataTypes,结果相同。我确定我做错了什么或误解了什么,但我不确定是什么。
HTML / AJAX
<form id="my_form">
word <input type ="text" id="word1"/><br/>
<input type="submit">
</form>
<script>
$(document).ready(function(){
$("#my_form").on(function(e){
e.preventDefault();
var verb = $("word1").val();
$.ajax({
url: "testrun.php",
data: "verb",
type: "POST",
});
});
});
</script>
PHP
if (isset($_POST['verb'])){
$x= $_POST['verb'];
echo $x;
}else {
echo "not working";
}
编辑:到目前为止,我已经尝试了一些建议,直接复制和粘贴它们,并且没有一个实际上做过我能看到的任何事情。我想我已经开始更多地了解AJAX应该如何工作,基于响应,但它仍然没有达到PHP由于某种原因。我已经尝试将AJAX / HTML放在一个单独的文件中,该文件调用testrun.php脚本并将所有内容放入testrun.php文件中并基本上让它用AJAX调用自己,但这两种方法都没有取得任何成果。
如果我从响应中得到的AJAX很好,那么我是否误解了如何设置PHP以实际接收POST数据?我还是很迷茫。
答案 0 :(得分:4)
三项变更:
1. var verb = $ ("word1").val();
需要var verb = $ ("#word1").val();
,因为其ID(word1
)
2. data: "verb",
需要data: {"verb":verb},
3.表单提交需要正确,因此下面给出的代码(缺少submit
): -
正确的代码: -
$(document).ready(function(){
$("#my_form").on('submit',function(e){ // check here you have one missing `submit`
e.preventDefault();
var verb = $("#word1").val(); // remove space between `$` and `(`
$.ajax({
url: "testrun.php",
data: {"verb":verb},
type: "POST",
});
});
});
答案 1 :(得分:2)
您无法在ajax中以$(document).ready(function ()
{
$("#my_form").on('submit', function (e)
{
e.preventDefault();
var verb = $("#word1").val();
$.ajax({
url: "testrun.php",
data: {verb: verb},
type: "POST"
});
});
});
的形式发送数据。你需要以params发送你的数据。
其次,您无法将data: "verb",
输入的值设为word1
,您需要使用$("word1").val();
来获取ID输入。
示例:强>
#
答案 2 :(得分:1)
您错过了在#
var verb = $("word1").val();
签名
并使用变量作为data
的变量data: {"your_var_name" : verb}
答案 3 :(得分:1)
#
的{{1}}敌人选择器。word1
需要绑定事件。在您提交表单的情况下,它是.on()
数据应作为对象传递。在您的情况下,您可以使用submit
$_POST['verb']
答案 4 :(得分:0)
你必须这样做:
var verb = $("#word1").val(); //Don't forget to add #
$.ajax({
url: "testrun.php",
data: {"verb":verb},
type: "POST",
});
verb
是一个变量,无需在引用之间插入!
答案 5 :(得分:0)
试试这个 ...
$.ajax({
type: "POST",
url: "testrun.php",
data: "paramname=value", // access in php $_POST['paramname']
success: function(data){
// if page request is success
},
error: function(data){
// if page request failes
}
});