【发布时间】:2013-12-12 12:34:28
【问题描述】:
我有一个按钮,它调用一个模式框来淡入屏幕,说从按钮发布的值然后淡出,这使用 jquery 可以正常工作,但我也希望在同一次单击时从按钮发送的值是发布到一个 php 函数,该函数要运行并且模态框仍然淡入淡出。
我只有这个让我的网站知道使用什么 js:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
我还是新手,很抱歉提出一个菜鸟问题,但这会允许 ajax 运行,还是仅适用于 jquery?
我正在尝试的当前脚本是:(根据回复编辑为正确格式,但现在什么都没有发生)
<script>
$('button').click(function()
{
var book_id = $(this).parent().data('id'),
result = "Book #" + book_id + " has been reserved.";
$.ajax
({
url: 'reservebook.php',
data: "book_id="+book_id,
type: 'post',
success: function()
{
$('.modal-box').text(result).fadeIn(700, function()
{
setTimeout(function()
{
$('.modal-box').fadeOut();
}, 2000);
});
}
});
});
</script>
尽管这样,模态框甚至不会发生。
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);
}
?>
为了彻底,按钮是:
<div class= "obutton feature2" data-id="<?php echo $bookID;?>"><button>Reserve Book</button></div>
我是新手,我在这里查看了许多其他类似的问题,这就是我获得当前脚本的方式,但它不起作用。
不确定它是否重要,但只有模态框的脚本必须位于 html 正文的底部才能工作,不确定是否出于某种原因 ajax 需要位于顶部,但是模态框盒子行不通,只是一个想法。
【问题讨论】:
-
危险:您使用的是an obsolete database API,应该使用modern replacement。您也容易受到SQL injection attacks的影响,现代 API 可以让您更轻松地从 defend 中获得。
-
啊,谢谢,我一直被告知这一点,我一直想阅读并迁移过来。
-
你真的不使用
mysql_real_escape_string()、htmlspecialchars()和filter_input()吗?! SQL 注入只是一个问题。<?php echo $bookID;?>也会导致 XSS。