表单ajax提交数据到php文件

19 浏览
0 Comments

表单ajax提交数据到php文件

这个问题已经有了答案

jQuery Ajax POST example with PHP

嗨,我正在尝试使用ajax创建表单。但是在将表单变量发送到php文件时遇到了一些问题。我收到错误消息:未定义的索引:name。

我检查了Chrome开发工具,我看到变量已经发送。但是当我使用echo json_encode时,我在php文件中看到的是一个空数组。所以我不知道自己犯了什么错误。

文件Main.js

var name = $('#user_name').val();
var lname = $('#user_lastname').val();
function formLogin(name, lname)
{
$.ajax({ url: 'database/register.php',
     data: {
         'name' : name,
         'lname' : lname
     },
     type: 'post',
     dataType:'json',
     success: function(data) {
                  alert(data);
              }
});
}

Html表单:

Imię: Nazwisko:

Php代码:

$dane = $_POST;

echo json_encode($dane);

Chrome开发工具:

\"enter

我只想知道如何在php文件register.php中输出这些变量(name,lname)

使用serialize的版本:

function formLogin() {
        var dane = $('form').serialize();
    $.ajax({
        url: 'database/register.php',
        data: {'dane': dane},
        method: 'post',
        success: function(data) {
            console.log(data);
        }
    });
}

然后结果控制台:

D:\xampp\htdocs\szkola\database\register.php:8:
array (size=1)
  'dane' => string '' (length=0)

jquery-3.2.1.min.js:4 XHR finished loading: POST "http://localhost/szkola/database/register.php".

但是当我转到http://localhost/szkola/database/register.php

我得到了这个:

D:\\xampp\\htdocs\\szkola\\database\\register.php:8:

array (size=0)

empty

admin 更改状态以发布 2023年5月24日
0
0 Comments

尝试使用method代替type

HTML代码:

Imię: Nazwisko:

JavaScript代码:

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);
        }
    });
}

同时记得你正在请求JSON,所以你必须在你的PHP文件中使用json_encode($array)输出,以便返回一个简单的字符串。

0
0 Comments

您需要改变在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(...,...)):

Imię: Nazwisko:

0