我已经尝试了几个小时,而且我不知道还有什么可以尝试。我在这里看了几十个问题,但是它们过于复杂或者我不理解它们。几天前,我对javascript / jquery日期的体验没有帮助。 无论如何,这是我的形式:
<form onsubmit="onSubmit(this)">
<input type="text" name="input1"/><br/>
<input type="text" name="input2"/><br/>
</form>
我的剧本:
function onSubmit( form ){
var jsondate = JSON.stringify( $(form).serializeArray() );
console.log( jsondate );
alert(jsondate);
$.ajax({
type: "POST",
url: "json.php",
data: jsondate,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){
alert(jsondate);
},
failure: function(errMsg) {
alert(errMsg);
}
});
}
我的json.php文件:
<?php
if (isset($_POST['jsondate'])) {
echo "whatever";
}
问题是,我使用json字符串获取警报,但是当它将我重定向到json.php(在表单上使用action="json.php"
),或者我留在页面上时,它不会显示任何内容,所以我猜它是$.ajax({...})
关于如何使其工作,如何工作以及为什么会非常有用的任何解释!
答案 0 :(得分:0)
您需要一种从元素中获取值的方法。在此示例中,我将使用HTML上的ID并在javascript中使用它
HTML:
<form onsubmit="onSubmit(this)">
<input type="text" id="ID1"><br/>
<input type="text" id="ID2"><br/>
</form>
JavaScript的:
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
});
答案 1 :(得分:0)
两个问题:您没有为表单元素命名,也没有阻止表单提交。
这是一个充分利用jQuery的解决方案。
首先,为方便起见,请为表单提供ID。
其次,必填,为表单字段命名。
<form id="form1">
<input type="text" name="input1"><br/>
<input type="text" name="input2"><br/>
</form>
第三,使用.submit(handler)将onsubmit
事件处理程序附加到表单。
$('#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);
}
});
});
第四,在json.php
中,您可以访问字段
echo $_POST['input1'];
echo $_POST['input2'];