Ajax将数据插入数据库
我想使用Ajax插入数据。当我点击按钮(接受)时,应该插入值1,并且按钮应该改为接受。我曾尝试下面的代码Ajax将数据插入数据库
<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代码
<form action="" method="post">
<input type="hidden" id="app" value="1"/>
<input id='submit' type='submit' value='Accept'>
</form>
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());
当我运行这个没有任何反应。请帮忙!!
尝试此
HTML
<input type="hidden" value="1" id="app">
<input type="submit" value="SUBMIT" id="submit">
JS
$('#submit').click(function() {
var name = $('#app').val();
$.ajax({
url: 'approve.php',
data:"app="+ name,
success:function(){
alert("success");
}
});
});
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
$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();
}
但仍然没有任何反应。它没有进入到数据库 – Andrew
编辑,检查出来。 –
您的JavaScript错误。首先,您正试图在隐藏的表单字段上设置“提交”事件处理程序。自然只有<form>
自动触发submit
事件。其次,您没有设置method
参数,因此$ .ajax通过GET
提交您的数据,这意味着您的PHP代码不会看到任何值。
你是最好的提交按钮设置一个单击事件:
<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>
你approve.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());
尝试过但没有任何反应。 – Andrew
Add One more parameter in ajax for submitting post data
$.ajax({
url: 'approve.php',
type: 'POST'
data:"app="+ name,
success:function(){
alert("success");
}
}));
我已更新我的帖子。请检查 – Andrew
你好改变数据:{app:name}到数据:{'app':name}在ajax代码 – surabhivin
嗨,我不知道什么是错的,我也试过。没有任何反应 – Andrew
这个'$( '#应用程序')上('#submit',...'没有任何意义,您可以将侦听器设置为表单并让它在'submit'上触发,或者您对submit- – Jeff
尝试一下基本知识,'$('#app')。submit'将会调用AJAX –
'submit'事件需要绑定到'form',你的代码真的没有意义 –