[英]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"
因此,請確保imgs
中id
的類型是varchar
或其他可以存儲字符串的內容,而不是int
或bigint
。
更新:正如Ivan在評論中指出的那樣,由於img_id
是字符串而不是整數,因此您的INSERT
查詢無效,因此需要將ID括在引號中。 一種簡單的方法是:
$query = "INSERT INTO imgs (id) VALUES (\"".mysqli_real_escape_string($id)."\")";
但是更合適的方法是使用准備好的語句:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.