Php jqueryonclick中的ajax帖子
我有一个按钮,它调用一个模式框,使其淡入屏幕,表示一个从按钮发布的值,然后淡出,使用jquery可以很好地工作,但我也希望在相同的单击上,从按钮发送的值将被发布到一个php函数,即运行,并且模式框仍然淡入淡出 我只想让我的网站知道使用什么js:Php jqueryonclick中的ajax帖子,php,jquery,html,ajax,Php,Jquery,Html,Ajax,我有一个按钮,它调用一个模式框,使其淡入屏幕,表示一个从按钮发布的值,然后淡出,使用jquery可以很好地工作,但我也希望在相同的单击上,从按钮发送的值将被发布到一个php函数,即运行,并且模式框仍然淡入淡出 我只想让我的网站知道使用什么js: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script> 我还是新手,很抱歉问了一个新手问题,但这会允许aja
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
我还是新手,很抱歉问了一个新手问题,但这会允许ajax运行吗,还是只用于jquery
我正在尝试的当前脚本是:(根据回复编辑为正确格式,但现在什么也没发生)
$(“按钮”)。单击(函数()
{
var book_id=$(this.parent().data('id'),
result=“Book#”+Book_id+“已被保留。”;
$.ajax
({
url:'reservebook.php',
数据:“book_id=“+book_id,
键入:“post”,
成功:函数()
{
$('.modal box').text(result).fadeIn(700,function()
{
setTimeout(函数()
{
$('.modal box').fadeOut();
}, 2000);
});
}
});
});
尽管这样,模态盒甚至不会发生
php是resersebook.php:
<?php
session_start();
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('library', $conn);
if(isset($_POST['jqbookID']))
{
$bookID = $_POST['jqbookID'];
mysql_query("INSERT INTO borrowing (UserID, BookID, Returned) VALUES ('".$_SESSION['userID']."', '".$bookID."', '3')", $conn);
}
?>
如果Ajax格式不好,则需要success事件。这样,当您调用ajax并且它成功时,它将显示响应
$.ajax
({
url: 'reserbook.php',
data: {"book_id":book_id},
type: 'post',
success: function(data) {
$('.modal-box').text(result).fadeIn(700, function()
{
setTimeout(function()
{
$('.modal-box').fadeOut();
}, 2000);
});
}
}
编辑:
另一个重要的点是数据:“book\u id=“+book\u id
,这应该是数据:{“book\u id”:book\u id}
,您的ajax定义有错误。应该是:
$.ajax
({
url: 'reserbook.php',
data: "book_id="+book_id,
type: 'post',
success: function()
{
$('.modal-box').text(result).fadeIn(700, function()
{
setTimeout(function()
{
$('.modal-box').fadeOut();
}, 2000);
});
}
});
试试这个。编辑成最终答案
按钮:
<div class= "obutton feature2" data-id="<?php echo $bookID;?>">
<button class="reserve-button">Reserve Book</button>
</div>
<script>
$('.reserve-button').click(function(){
var book_id = $(this).parent().data('id');
$.ajax
({
url: 'reservebook.php',
data: {"bookID": book_id},
type: 'post',
success: function(result)
{
$('.modal-box').text(result).fadeIn(700, function()
{
setTimeout(function()
{
$('.modal-box').fadeOut();
}, 2000);
});
}
});
});
</script>
<?php
session_start();
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('library', $conn);
if(isset($_POST['bookID']))
{
$bookID = $_POST['bookID'];
$result = mysql_query("INSERT INTO borrowing (UserID, BookID, Returned) VALUES ('".$_SESSION['userID']."', '".$bookID."', '3')", $conn);
if ($result)
echo "Book #" + $bookId + " has been reserved.";
else
echo "An error message!";
}
?>
}))
试试这个,
在键入:'post'
后丢失。我已经将我的ajax改成了这个,但现在什么也没发生,我更新了我的帖子以显示我的完整脚本,可能把它弄糟了。尽管如此,您可能会面对palm,在我的reservebook.php中,我需要什么:或者不管怎样,它是否能够获取变量,而且该脚本将允许此ajax正常工作,而不仅仅是用于jqueryS@Tom如果您复制并粘贴了答案,我会更新答案,因为我缺少一个,
,但Jquery库不是问题所在。危险:您正在使用并且应该使用一个。你也很容易受到现代API的影响。啊,谢谢你,我一直被告知这一点,我一直想读一读并迁移过去。你真的不使用mysql\u real\u escape\u string()
,htmlspecialchars()
和filter\u input()
?!SQL注入只是一个问题<代码>
也会导致XSS。仍然什么也没有发生。这是我第一次使用ajax,但进展并不顺利。我理解所有的代码,但就是不起作用。事实上,modal本身可以工作,但随着ajax的引入,它就不能工作了,有什么东西可以简单地阻止ajax运行吗?我也不确定我的眼睛是否在放大,但你的剧本中是否缺少一个右括号?好吧,我关闭了,以防万一,还是什么都没有:/@Tom它在数据库中插入了什么吗?或者它根本没什么作用?@Tom用编辑过的代码再试一次。只需更改Ajax调用中的data
字段。什么都不做,即使每次我检查db时都没有出现模式,并且没有插入任何内容,我也无法判断php是否没有运行,或者Ajax没有运行
<script>
$('.reserve-button').click(function(){
var book_id = $(this).parent().data('id');
$.ajax
({
url: 'reservebook.php',
data: {"bookID": book_id},
type: 'post',
success: function(result)
{
$('.modal-box').text(result).fadeIn(700, function()
{
setTimeout(function()
{
$('.modal-box').fadeOut();
}, 2000);
});
}
});
});
</script>
<?php
session_start();
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('library', $conn);
if(isset($_POST['bookID']))
{
$bookID = $_POST['bookID'];
$result = mysql_query("INSERT INTO borrowing (UserID, BookID, Returned) VALUES ('".$_SESSION['userID']."', '".$bookID."', '3')", $conn);
if ($result)
echo "Book #" + $bookId + " has been reserved.";
else
echo "An error message!";
}
?>
$.ajax
({
url: 'reservebook.php',
data: {
jqbookID : book_id,
},
type: 'post',
success: function()
{
$('.modal-box').text(result).fadeIn(700, function()
{
setTimeout(function()
{
$('.modal-box').fadeOut();
}, 2000);
});
}
});