Javascript 通过AJAX将表单数据发送到PHP文件
我已经试了几个小时了,不知道还能试什么。我看了很多问题,但都太复杂了,或者我不理解。这对我几天前使用javascript/jquery的经验毫无帮助。 不管怎样,这是我的表格:Javascript 通过AJAX将表单数据发送到PHP文件,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,我已经试了几个小时了,不知道还能试什么。我看了很多问题,但都太复杂了,或者我不理解。这对我几天前使用javascript/jquery的经验毫无帮助。 不管怎样,这是我的表格: <form onsubmit="onSubmit(this)"> <input type="text" name="input1"/><br/> <input type="text" name="input2"/><br/> </form&
<form onsubmit="onSubmit(this)">
<input type="text" name="input1"/><br/>
<input type="text" name="input2"/><br/>
</form>
和我的json.php文件:
<?php
if (isset($_POST['jsondate'])) {
echo "whatever";
}
您需要一种从元素中获取值的方法。。在本例中,我将在HTML中使用ID,并在javascript中使用它
HTML:
两个问题:您没有给表单元素命名,也没有阻止表单提交
这里有一个尽可能多地使用jQuery的解决方案
首先,为了方便起见,请为表单提供一个ID
第二,必填项,为表单字段指定名称
<form id="form1">
<input type="text" name="input1"><br/>
<input type="text" name="input2"><br/>
</form>
第四,在json.php
中,您可以访问这些字段
echo $_POST['input1'];
echo $_POST['input2'];
data:{jsondate:jsondate},
试试这个你的表单元素没有名字……你之前没有问过类似的问题吗?和收到的答案。可能重复您为什么要这样做JSON.stringify($(form.serializeArray())
?您不需要将其更改为JSON字符串。不起作用。它清除输入,不显示任何内容。顺便问一下,“停止表单提交”是什么意思?是否包含了jQuery库,如图所示?默认情况下,当您提交时,它会将数据发送到操作
属性中的任何页面。如果没有action
属性,则会将数据发送到同一页面。当您发送数据时,它也会转到该页面。我们想防止这种情况发生。是的,我做到了。jQuery在使用json字符串等执行警报时工作。这是ajax的一部分,一切都在这里进行。
var v1 = $("#ID1").val(); // Get de value using the Ids
var v2 = $("#ID2").val();
$.ajax({
method: "POST",
url: "json.php", // add the page here
data: { name: v1, location: v2 } // put the data here (Will get this data using POST)
})
.done(function( msg ) {
alert( "Data Saved: " + msg ); // if it works this alert will appear
});
<form id="form1">
<input type="text" name="input1"><br/>
<input type="text" name="input2"><br/>
</form>
$('#form1').submit(function (e) {
// prevent the form from submitting/reloading (by default)
e.preventDefault();
//
$.ajax({
type: "POST",
url: "json.php",
data: $(this).serializeArray(),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){
alert(jsondate);
},
failure: function(errMsg) {
alert(errMsg);
}
});
});
echo $_POST['input1'];
echo $_POST['input2'];