【问题标题】:how to put the form content into database and give back a php response?如何将表单内容放入数据库并返回 php 响应?
【发布时间】:2015-06-03 22:01:54
【问题描述】:

我创建了一个 html 表单,它将某些变量发送到一个 php 文件,该文件保存在数据库中,并通过 json 将成功返回给 javascript。但问题是无法保存数据并将响应返回到 javascript 文件。我不知道是什么原因。所以有人可以帮我解决这个问题。谢谢

我的表格是

<!doctype html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js">       </script>
<script src="scriptj.js"></script>
</head>
<body>
<form action="http://localhost/donotdel/process.php" method="POST">
    <div id="name-group" class="form-group">
        <label for="name">Name</label>
        <input type="text" class="form-control" name="name" placeholder="name">
    </div>
    <div id="email-group" class="form-group">
        <label for="email">Email</label>
        <input type="text" class="form-control" name="email" placeholder="email">
    </div>
    <button type="submit" class="btn btn-success">Submit <span class="fa fa-arrow-right"></span></button>
  </form>
</body>
</html>

我的 javascript 文件是

$(document).ready(function () {
    $('form').submit(function (event) {
        $('.form-group').removeClass('has-error');
        $('.help-block').remove();
        var formData = {
            'name': $('input[name=name]').val(),
            'email': $('input[name=email]').val(),
        };
        $.ajax({
            type: 'POST',
            url: 'http://localhost/donotdel/process.php',
            data: formData,
            dataType: 'json',
            encode: true
        }).done(function (data) {
            console.log(data);
            if (!data.success) {
                if (data.errors.name) {
                    $('#name-group').addClass('has-error');
                    $('#name-group').append('<div class="help-block">' + data.errors.name + '</div>');
                }

                if (data.errors.email) {
                    $('#email-group').addClass('has-error');
                    $('#email-group').append('<div class="help-block">' + data.errors.email + '</div>');
                }
            }
            else {
                $('form').append('<div class="alert alert-success">' + data.message + '</div>');
            }
        }).fail(function (data) {
            console.log(data);
        });
        event.preventDefault();
    });
});

我的php文件是

<?php

$errors         = array();      
$data           = array(); 

if (empty($_POST['name']))
    $errors['name'] = 'Name is required.';

if (empty($_POST['email']))
    $errors['email'] = 'Email is required.';

if ( ! empty($errors)) {
    $data['success'] = false;
    $data['errors']  = $errors;
} else {
    $data['success'] = true;
    $data['message'] = 'Success!';
}
header ('Content-Type: application/json');
header("Access-Control-Allow-Origin: *");
echo json_encode($data);
?>

现在我想从上面的 php 文件中输入 nameemail 到数据库中。但我不知道该怎么做。所以有人可以帮我写代码。输入后我想将上面的 json 响应发送回 javascript

谢谢

【问题讨论】:

  • 您使用的是mysqli 还是PDO
  • 我可以帮助您插入数据...可以吗
  • 对不起,我刚刚更新了我的答案以获得一些更有用的代码。填写变量后,一切都应该立即可用。服务器名、用户名、密码和 QryString
  • @mudassar 我想将数据输入数据库并将json响应发送回上述javascript文件

标签: php jquery html mysql ajax


【解决方案1】:

您需要做的是建立一个数据库连接并使用该数据库连接在用户表中插入一个新行。如果 sql 错误返回错误,则返回 json 数据。完成后请务必关闭与数据库的连接。

首先构建一个 dbconfig.php 文件 这用于建立与数据库的连接。 这是一个简单的样子。

<?php
$servername = "localhost";
$username = "root";
$password = "temppass";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

在您的文件中包含 dbcong.php

include ('dbconfig.php');
// Check connection
if (mysqli_connect_error()) {
    die("Database connection failed: " . mysqli_connect_error());
}else{
    //if it make a connection insert code here!
    $qry = "INSERT ..."; //build your insert string here!
    $conn->query($qry); // run your insert here!
    //Don't forget to CLOSE YOUR CONNECTION!
    $conn->close();
}

【讨论】:

  • 如果您使用-&gt;prepare()-&gt;bind_param()-&gt;execute() 而不是-&gt;query(),这个答案会更好
  • 该代码是为第一次介绍 mysql 连接和插入的人快速编写的。我确实通过杂音代码道歉,但这对于学习目的来说已经足够了。请随时对其进行编辑以使其更好。
  • 是的,我知道这种输入数据的方法,但我面临的问题是我想接收数据,使用 mysql 进入数据库,一旦成功,我想向我的 javascript 文件发送一个 json 响应将重定向到另一个页面。但是在这里我无法将变量输入数据库并仅发送响应。
  • 如果你给a persons first introduction to a mysql connection and insert,教他们坏方法可能不是一个好主意,让他们打开sql注入。
  • @SusanWilliams 那么你的问题是什么?你说你想receive the data, insert the data, and send a response。您提供的代码除了insert the data 之外都可以,因此@SariRahal 假设您需要帮助插入数据是合乎逻辑的。因此,如果这不是您需要帮助的原因,您需要澄清您的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-24
  • 2019-07-16
相关资源
最近更新 更多