Php jqueryonclick中的ajax帖子

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

我有一个按钮,它调用一个模式框,使其淡入屏幕,表示一个从按钮发布的值,然后淡出,使用jquery可以很好地工作,但我也希望在相同的单击上,从按钮发送的值将被发布到一个php函数,即运行,并且模式框仍然淡入淡出

我只想让我的网站知道使用什么js:

 <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);
        });
    }
});