Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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 post数据格式化为php文件_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 将ajax post数据格式化为php文件

Javascript 将ajax post数据格式化为php文件,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,嗨,我正在尝试使用ajax制作表单。但我在将表单变量发送到php文件时遇到了一些问题。我得到错误:未定义索引:name。 我检查了chrome开发工具,发现变量正在发送。但当我在php文件中看到echo json_编码时,我得到的是空数组。所以我不知道我在哪里犯了错 文件Main.js var name=$('#user_name').val(); var lname=$('#user_lastname').val(); 函数formLogin(名称,lname) { $.ajax({url:

嗨,我正在尝试使用ajax制作表单。但我在将表单变量发送到php文件时遇到了一些问题。我得到错误:未定义索引:name。 我检查了chrome开发工具,发现变量正在发送。但当我在php文件中看到echo json_编码时,我得到的是空数组。所以我不知道我在哪里犯了错

文件Main.js

var name=$('#user_name').val();
var lname=$('#user_lastname').val();
函数formLogin(名称,lname)
{
$.ajax({url:'database/register.php',
数据:{
“名称”:名称,
“lname”:lname
},
键入:“post”,
数据类型:'json',
成功:功能(数据){
警报(数据);
}
});

}
您需要更改在Javascript中定义变量的方式,并在函数内部而不是外部声明变量:

function formLogin(){

    var name = $('#user_name').val();
    var lname = $('#user_lastname').val();

    $.ajax({ url: 'database/register.php',
         data: {
             'name' : name,
             'lname' : lname
         },
         type: 'post',
         dataType:'json',
         success: function(data) {
             alert(data);
         }
    });
}
您需要以相同的方式更新HTML(
formLogin()
,而不是
formLogin(…,…)
):


伊米:
纳兹维斯科:

尝试使用
方法
而不是
类型

HTML:

<form class="circleForm" id="registerForm">
    Imię:       <input type="text" id="user_name" name="name"><br />
    Nazwisko:   <input type="text" id="user_lastname" name="lname"><br />
    <input class="btnCircle" type="button" id="submit" value="Przejdź dalej" onclick="formLogin();">                    
</form>

还请记住,您正在请求一个JSON,因此您必须在PHP文件中回显一个
JSON\u encode($array)
,因为一个简单的字符串将不会被返回。

好的,我会尝试我喜欢你写,但我在register.PHP中仍然得到空数组。我甚至试着做echo$_POST['name'];我得到了与未定义索引相同的错误。通过执行
print\r($\u POST)
,尝试查看
$\u POST
中的内容。ye i do及其空数组如果将数据发送到PHP文件时出现问题。发送Javascript数据之前请检查它。您能提供用于在服务器端检索数据的确切代码吗?@VIshal我刚刚学习了ajax并制作了一些表单等。现在我尝试使用ajax制作表单,并向php文件发送2个输入(名称,lname),只回显itI,就像u写一样,我仍然得到空数组$丹麦=美元邮政;echo json_encode($dane);`在控制台中,我得到一个名为lnameThat的对象,这是你们应该得到的。您得到的JSON响应是一个对象。您可以使用控制台.log(data.name)访问它的信息,它将返回
name
的值。是的,我知道,但我不知道如何将这两个变量发送到register.php。我确实尝试了不同的方法,但仍然不知道为什么会得到空数组或关于未定义索引的错误。我读了很多关于ajax的帖子和教程,我认为我的代码在img上看起来不错,我看到帖子在工作,但现在我真的不知道哪里出错了。在发出ajax请求之前,尝试运行
控制台.log
,查看这两个变量。如果它们显示在控制台中,则该步骤已正确完成。如果它们没有显示在控制台中,可能是您获取输入值的方式有问题。是的,我确定没有
$\u POST['data']
。您在JS中声明的
数据
变量是序列化的表单,而不是实际的
$\u POST
项。此变量将带来每个输入及其值。在PHP文件中,您可以通过名称访问每个输入的值,如下所示:
$\u POST['name']
。其他输入也一样,例如:如果要访问序列化表单的输入“
”,则应转到
$\u POST['user\u email']
$\u POST['data']
不存在,因为
data
只是一个包含每个输入的变量。
<form class="circleForm" id="registerForm">
    Imię:       <input type="text" id="user_name" name="name"><br />
    Nazwisko:   <input type="text" id="user_lastname" name="lname"><br />
    <input class="btnCircle" type="button" id="submit" value="Przejdź dalej" onclick="formLogin();">                    
</form>
function formLogin() {

    // Serialize the form
    var data = $('form').serialize();

    // Ajax call
    $.ajax({
        url: 'database/register.php',
        data: data,
        method: 'post',
        dataType: 'json',
        success: function(data) {
            console.log(data);
        }
    });

}