通过AJAX将表单数据发送到PHP文件

时间:2017-04-12 13:15:59

标签: javascript php jquery json ajax

我已经尝试了几个小时,而且我不知道还有什么可以尝试。我在这里看了几十个问题,但是它们过于复杂或者我不理解它们。几天前,我对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({...})

中的内容

关于如何使其工作,如何工作以及为什么会非常有用的任何解释!

2 个答案:

答案 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'];