簡體   English   中英

AJAX和PHP,不會發送數據

[英]AJAX and PHP, wont send data

我有一個奇怪的問題,我似乎無法解決。

我正在嘗試做的是在一頁上調用jQuery函數,將該函數的參數發送到同一服務器上的另一個.php文件,讓該php文件讀取該變量,然后將其插入數據庫。

函數觸發器放置在div上,如下所示:

<div class="add_button" onclick="addImg('<?php echo $value[id]; ?>');">

該函數本身如下所示:

function addImg(id) {
        $.ajax({
            url: "addImgs.php",
            type: "POST",
            data: {"id" : id}
        });

        console.log("Function called with ID: " + id);
}

我正在使用控制台在此處進行一些調試,並且console.log()函數正在正確執行。 如果“ url”不存在,日志還會給我一個錯誤500。

最后,我的addImgs.php的php代碼如下所示:

<?php

$id = $_REQUEST['id'];


$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password, "DB_name");

$query = "INSERT INTO imgs (id) VALUES ($id)";
$result = $conn->query($query);

$conn->close();

?>

如果我添加此.php文件,效果很好

?id=123

到它的url末尾,並且在數據庫中的表中添加了一個“ 123”值。

因此,我的假設是問題在於AJAX函數和PHP文件之間的連接。

請幫忙 :)

在您的問題中,您說變量名是id ,但是在實際的網站上,您給該鏈接的名稱是img_id

function addImg(id) {
        $.ajax({
            url: "http://projects.mn-web.dk/instafetcher/addImgs.php",
            type: "POST",
            data: {"img_id" : id}
        });

        console.log("Function called with ID: " + id);
}

您確定服務器端腳本也需要img_id嗎? 特別是,您確定在實際的PHP腳本中有以下代碼行:

$id = $_REQUEST['img_id'];

而不是這樣:

$id = $_REQUEST['id'];

另請注意,您的圖片ID不是整數:

img_id="828281229958329915_2834748"

因此,請確保imgsid的類型是varchar或其他可以存儲字符串的內容,而不是intbigint

更新:正如Ivan在評論中指出的那樣,由於img_id是字符串而不是整數,因此您的INSERT查詢無效,因此需要將ID括在引號中。 一種簡單的方法是:

$query = "INSERT INTO imgs (id) VALUES (\"".mysqli_real_escape_string($id)."\")";

但是更合適的方法是使用准備好的語句:

http://php.net/manual/zh/mysqli.prepare.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM