繁体   English   中英

使用 AJAX 将变量传递给 PHP 不起作用

[英]Passing variable to PHP with AJAX doesn't work

我正在尝试将一个整数传递给 php 代码,然后它将它存储到 WAMP sql db,但是我无法让它工作。

JS 函数 - item 是我要存储的整数:

function storeData(item){
    $.ajax({
        url: 'insert.php',
        type: 'POST',
        data: {
            'var1': item
        },
        success: function(results) {
            console.log("success");
        },
        error: function(results){
            console.log("error");
        }
    });
}

PHP文件:

<?php
    $host = "localhost:3306";
    $user = "root";
    $pass = "";
    $databaseName = "items";

    $con = mysqli_connect($host,$user,$pass, $databaseName);
    //$dbs = mysqli_select_db($databaseName, $con);

    $itemNumber = $_POST['var1'];

    echo json_encode($itemNumber);

    $sql = "INSERT INTO item_list (item_number) VALUES ('$itemNumber')";
    mysqli_query($con, $sql) or die(mysqli_error());
?>

我刚刚收到此错误 - XML 解析错误:未找到元素位置:file:///C:/wamp64/www/bootstrap-3.3.7-dist/insert.php 第 8 行,第 3 列:

仅仅查询数据库是不够的。 然后,您必须将某些内容发送回 javascript。 在这种情况下,状态消息就足够了

<?php
    $host = "localhost:3306";
    $user = "root";
    $pass = "";
    $databaseName = "items";

    $con = mysqli_connect($host,$user,$pass, $databaseName);
    //$dbs = mysqli_select_db($databaseName, $con);

    $itemNumber = $_POST['var1'];

    echo json_encode($itemNumber);

    $sql = "INSERT INTO item_list (item_number) VALUES ('$itemNumber')";
    $result = mysqli_query($con, $sql) or die(mysqli_error());

    if (!$result) {
        echo json_encode(array('status' => 'FAILED'));
    } else {
        echo json_encode(array('status' => 'OK'));
    }
?>

在你的 js 代码中

function storeData(item){
    $.ajax({
        url: 'insert.php',
        type: 'POST',
        data: {'var1': item },
        success: function(data) {
            console.log("In success method");
            console.log("status returned " + data.status);
        },
        error: function(data){
            console.log("error");
        }
    });
}

要使 console.log 正常工作,您需要一个成功方法,因此将其更改为:

function storeData(item){
    $.ajax({
      url: 'insert.php',
      type: 'POST',
      data: {
        var1: item
      }
    });}

到:

function storeData(item){
    $.ajax({
      url: 'insert.php',
      type: 'POST',
      data: {
        var1: item
      },
      success: function(results) {
        console.log(results);
      }
    });}

同样为了更好地阅读,我建议您对您的数据进行 json_encode:

echo json_encode($itemNumber);
exit;

我发现出了什么问题,显然我需要为 URL 指定完整路径,但我认为这不是必需的,因为主文件和 php 文件都在同一个文件夹中。

function storeData(item){
    $.ajax({
        url: 'http://localhost/bootstrap-3.3.7-dist/main.php',
        type: 'POST',
        data: {
            'var1': item
        },
        success: function(results) {
            console.log("success");
        },
        error: function(results){
            console.log("error");
        }
    });
    return false;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM