Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过AJAX将表单数据发送到PHP文件_Javascript_Php_Jquery_Json_Ajax - Fatal编程技术网

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

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&

我已经试了几个小时了,不知道还能试什么。我看了很多问题,但都太复杂了,或者我不理解。这对我几天前使用javascript/jquery的经验毫无帮助。 不管怎样,这是我的表格:

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