【问题标题】:post values with ajax, php put it in database使用ajax发布值,php将其放入数据库
【发布时间】:2015-12-21 18:10:18
【问题描述】:

我想接受来自表单的用户数据,使用 AJAX 将值发布到 PHP 脚本,PHP 脚本会将它们插入到数据库中。

JQuery:

$(".add").click(function(){
    var order = {
        Name: $name.val(),
        Drink: $drink.val(),
    }
    $.ajax({
        type: 'POST',
        url: '/ajax/api/orders.php',
        data: order,
        success: function(newOrder){
            $orders.append('<li>Name: ' + newOrder.Name +', Drink: '+ newOrder.Drink +'</li>')
    }
    })
});

PHP:

 //open connection to mysql db
$connection = mysqli_connect("localhost","root","xxxxxxxxx","test") or die("Error " . mysqli_error($connection));

//fetch table rows from mysql db
$sql = "select * from orders";
$result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection));

$name = $_POST["Name"];
$drink = $_POST["Drink"];

$sql2 = "INSERT INTO orders (Id, Name, Drink) VALUES (NULL, '$name', '$drink')";
//create an array
$emparray = array();
while($row =mysqli_fetch_assoc($result))
{
    $emparray[] = $row;
}
echo json_encode($emparray);

//close the db connection
mysqli_close($connection);

有人可以帮我吗?

【问题讨论】:

  • 您是否遇到任何错误?
  • 除其他问题外,您的代码对 SQL 注入开放。
  • 您没有在$sql2 = "INSERT INTO orders (Id, Name, Drink) VALUES (NULL, '$name', '$drink')"; 此处查询/连接到数据库,因此您的 INSERT 永远不会发生。 “并且 php 将其放入我的数据库中。” - 不会。 @KylianWester
  • 现在谁来"nom nom nom" 呢? ^ 谁知道你的 HTML 是否正确。
  • 你的代码有什么问题?

标签: php jquery mysql ajax


【解决方案1】:

我认为你应该在收到所有订单之前插入

$name = $_POST["Name"];
$drink = $_POST["Drink"];

$sql2 = "INSERT INTO orders (Id, Name, Drink) VALUES (NULL, '$name', '$drink')";
mysqli_query($connection, $sql) or 
             die("Error in Inserting" . mysqli_error($connection))

$id = mysqli_insert_id ($connection);
$sql = "select * from orders where Id = $id";
$result = mysqli_query($connection, $sql) or 
             die("Error in Selecting " . mysqli_error($connection));

//create an array
$emparray = array();
while($row =mysqli_fetch_assoc($result))
{
    $emparray[] = $row;
}
echo json_encode($emparray);

javascript 将是正确的:

$(".add").click(function(){
    var order = {
        Name: $name.val(),
        Drink: $drink.val(),
    }
    $.ajax({
        type: 'POST',
        url: '/ajax/api/orders.php',
        data: order,
        success: function(newOrder) {
            $.each(newOrder, function(order) {
                //$order is a ul that have id = orders
                $orders.append('<li>Name: ' + order.Name +', Drink: '+ order.Drink +'</li>');
            });
        }
    });
});

如果您需要什么,请询问:]

更新

请将你拥有的成功函数更新到这个

        success: function(data) {
            data.forEach(function(order) {
                //$orders is a ul that have id = orders
                $orders.append('<li>Name: ' + order.Name +', Drink: '+ order.Drink +'</li>');
            });
        }

更新 2

success: function(data) {
    var obj = JSON.parse(data);
    var length = obj.length;
    for (var i = 0; i < length; i++) {
        $orders.append('<li>Name: ' + obj[i].Name +', Drink: '+ obj[i].Drink +'</li>');
    }
}

更新 3

$name = $_POST["Name"];
$drink = $_POST["Drink"];

$sql2 = "INSERT INTO orders (Id, Name, Drink) VALUES (NULL, '$name', '$drink')";
mysqli_query($connection, $sql2) or 
             die("Error in Inserting" . mysqli_error($connection))

$id = mysqli_insert_id($connection);
$sql = "select * from orders where Id = $id";
$result = mysqli_query($connection, $sql) or 
             die("Error in Selecting " . mysqli_error($connection));

//create an array
$emparray = array();
while($row =mysqli_fetch_assoc($result))
{
    $emparray[] = $row;
}
echo json_encode($emparray);

【讨论】:

  • 控制台出现错误“newOrder.each 不是函数”
  • @KylianWester 请让我看看console.log(newOrder);的结果
  • 我得到“未定义新订单”,我正在学习这个,所以我认为这是一个愚蠢的事情 XD
  • Uncaught TypeError: Cannot use 'in' operator to search for 'length' in [{"Id":"1","Name":"kylian","Drink":"Coffee"},{"Id":"2","Name":"Chris","Drink":"Tea"},{"Id":"3","Name":"Jelle","Drink":"Coffee"},{"Id":"4","Name":"Ruud","Drink":"IceTea"}] 我得到这个控制台错误
  • Uncaught TypeError: data.forEach is not a function
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多