简体   繁体   English

Ajax将数据插入数据库

[英]Ajax insert data to database

I want to insert data using Ajax. 我想使用Ajax插入数据。 When I click the button(accept) value 1 should be inserted and button should be changed to accepted. 当我单击button(accept)值时,应该插入1并将button更改为accept。 I have tried the following code 我尝试了以下代码

<script>
    $(function(){
        $('#submit').on('click', function() {
            var name = $('#app').val();
            if (name.length > 0) {
                $.ajax({
                    url: 'approve.php',
                    method: 'POST'
                    data: { app: name },
                    success: function() {
                        alert("success");
                    }
                });
            }
        });
    });
</script>

HTML code HTML代码

<form action="" method="post">
    <input type="hidden" id="app" value="1"/>
  <input id='submit' type='submit' value='Accept'> 
</form>

approve.php is approve.php是

$u_id  = $_SESSION['UserID'];
 $appinfo = $_POST['app'];
$sql = "UPDATE tbl_bides SET selected='$appinfo' WHERE bidder_id = '".$u_id."'" or die(mysql_error());
$Result = mysql_query($sql,$con) or die(mysql_error());

When I run this nothing happens. 当我运行时,什么也没有发生。 Please help!! 请帮忙!!

Try this 尝试这个

HTML 的HTML

<input type="hidden" value="1" id="app">
<input type="submit" value="SUBMIT" id="submit">

JS JS

$('#submit').click(function() {
var name = $('#app').val();

$.ajax({
    url: 'approve.php',
    data:"app="+ name,
    success:function(){
           alert("success");
    }
  });
});

approve.php (using PDO) approve.php(使用PDO)

include('connection.php');


$u_id  = $_SESSION['UserID'];

if(isset($_POST['app'])) {
    $appinfo  = $_POST['app'];

    $queryUpdate = $YourConnectionName->prepare("UPDATE tbl_bides SET selected=:appinfo WHERE bidder_id=:u_id");
    $queryUpdate->execute(array(':u_id' => $u_id, ':appinfo'=> $appinfo));
}

connection.php connection.php

$username = 'YourUsernameOfDatabase';
$password = 'YourPasswordOfDatabase';

try {
    $YourConnectionName = new PDO('mysql:host=Yourhost; dbname=YourDatabaseName', $username, $password);
    $YourConnectionName->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $YourConnectionName->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
    echo 'You are not connected';
    $e->getMessage() . "<br/>";
    die();
}

Your javascript is wrong. 您的JavaScript错误。 First, you're trying to set a 'submit' event handler on a hidden form field. 首先,您尝试在隐藏的表单字段上设置“提交”事件处理程序。 Only <form> fires the submit event naturally. 只有<form>会自然触发submit事件。 Second, you aren't setting the method parameter so $.ajax is submitting your data via GET which means your PHP code won't see any values. 其次,您没有设置method参数,因此$ .ajax通过GET提交数据,这意味着您的PHP代码将看不到任何值。

You are better off setting a click event on the submit button: 您最好在“提交”按钮上设置点击事件:

 <script>
    $(function(){
        $('#submit').on('click', function() {
            var name = $('#app').val();

            if (name.length > 0) {
                $.ajax({
                    url: 'approve.php',
                    method: 'POST'
                    data: { app: name },
                    success: function() {
                        alert("success");
                    }
               });
           }
        });
    });
</script>

And you approve.php: 并且您批准了.php:

$u_id  = $_SESSION['UserID'];
$appinfo = $_POST['app'];
$sql = "UPDATE tbl_bides SET selected='$appinfo' WHERE bidder_id = '$u_id'";
$Result = mysql_query($sql, $con) or die(mysql_error());
 Add One more parameter in ajax for submitting post data 

    $.ajax({
                url: 'approve.php',
                type: 'POST'
                data:"app="+ name,
                success:function(){
                    alert("success");
                }
           }));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM