来自.ajax的PHP文件调用不将数据插入数据库

时间:2013-07-05 06:13:55

标签: php jquery mysql ajax post

我是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访问变量? (I.E.网址为http://website.com/poem_id=7,我想访问poem_id值?

3 个答案:

答案 0 :(得分:0)

在数据库插入文件中执行print_r($_POST),看看是否获得了具有正确名称的所有变量。按照代码,你应该得到。

此外,您可以传递使用普通URL执行的任何参数,这是使用AJAX调用它的唯一区别。

答案 1 :(得分:0)

感谢大家的回复 -

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

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

再次感谢回复 - 我通过制作我的网站以及如何利用它的不可思议的力量来学习很多关于AJAX的知识。

答案 2 :(得分:-1)

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

的值