如何使用ajax将变量从javascript正确发送到php?

时间:2017-06-21 20:23:27

标签: javascript php ajax postgresql

我想从javascript向php发送一个字符串变量,并使用字符串变量作为键值来设置数据库(pgsql)。以下是相关代码。

来自javascript:

    $scope.check = function(name) {
    var checkstatus = true;

    console.log(name);
    console.log(typeof name);
    if (document.getElementById(name).value == "true") {
        document.getElementById(name).value = "false";
        console.log("uncheck!");
        checkstatus = false;
    } 
    console.log(checkstatus);
    if (checkstatus === false) {

        $.ajax({
            url: 'partials/reception/deleteFromCheckedList.php',
            type: "POST",
            data: {
                'name': name
            },
            success: function (response, xhr) {
                location.reload(true);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                console.log(textStatus, errorThrown);
            }
        });
    }
}

来自php:

include('../get/inc/db.php');
$connect=pg_connect("host=$hostname dbname=$database user=$user 
password=$password");
$name = $_POST['name'];
$query="UPDATE images SET active='0' WHERE \"fileName\" LIKE '" . $name . "'";
$result=pg_query($connect, $query) or die ("Error in 
Query:$query.".pg_last_error($connect));

在javascript文件中,变量的类型是string。 在php中,列的类型" fileName"是变化的人物。 运行上面的代码时," active"的数据没有任何改变。但是,每次我在javascript中更改检查状态时,网页都会刷新。我无法弄清楚为什么会这样。

非常感谢你!

1 个答案:

答案 0 :(得分:-1)

修正了问题。这是因为我在mac上的本地服务器上运行此代码。使用本地服务器可能会有问题。当我将它上传到数据库位于linux系统上的服务器时,问题就解决了。