1

我对 PHP 很陌生,而且我以前从未做过 AJAX——我决定使用 Jquery .ajax 函数,因为它比 .post 有更多的自定义,而且我喜欢它的简洁性而不是普通的 javascript。

这是ajax代码

    $("#upvotearrow").click(function() {
    var dataString="vote=upvote";
    $.ajax({
        type: "POST",
        url: "../secure/process_upvotedownvote.php",
        data: dataString
    })
    .done(function() {
        alert("Upvote registered!");
    });
});

到目前为止,外部 PHP 文件是这样的:

include "db_connect.php";
include "functions.php";


    if(isset($_POST['vote']) && !empty($_POST['vote'])) {
        $poemid=7;
        $typeofvote = $_POST['vote'];
        if ($typeofvote=="upvote") {
            if ($insert_stmt = $mysqli->prepare("UPDATE poems SET poem_upvotes=poem_upvotes+1 WHERE poem_id=?")) { //Prepare SQL statement
                $insert_stmt->bind_param('i',$poemid); //Bind parameters
                $insert_stmt->execute();// Execute the prepared query.
            }
        }
   }

$mysqli变量很好,当我在数据库中键入它时查询就可以工作,所以我的问题本质上是我是否正确地将数据从 AJAX 传输到 PHP。

另外 - 一个附带问题 - 我调用的 PHP 文件是否可以从进行 AJAX 调用的页面的 URL 访问变量?(即 url 是http://website.com/poem_id=7,我想访问该poem_id值?

4

3 回答 3

0

在 db 插入文件中执行一个print_r($_POST)操作,看看您是否获得了所有具有正确名称的变量。根据代码,你应该得到。

此外,您可以传递对普通 url 执行的任何参数,唯一的区别在于它将使用 AJAX 调用。

于 2013-07-05T07:04:29.020 回答
0

谢谢大家的回复——

我发现 Firebug 不显示外部 PHP 文件的错误报告,但 Safari 会在开发工具的 XHRs 文件中回显变量 -

然后我创建了一个隐藏的输入字段,其中包含poem_id 数据,检查它在服务器端是否有效,然后执行脚本。我还修复了导致程序关闭的语法错误。

再次感谢您的回复——我通过制作我的网站以及如何利用它令人难以置信的力量来学习大量关于 AJAX 的知识。

于 2013-07-05T16:43:56.143 回答
-1

尝试改变dataString变量的值
var dataString = {vote:upvote};

于 2013-07-05T06:25:40.217 回答