gpt4 book ai didi

javascript - AJAX和PHP,不会发送数据

转载 作者:行者123 更新时间:2023-11-29 07:30:21 32 4
gpt4 key购买 nike

我有一个奇怪的问题,我似乎无法解决。

我想做的是在一个页面上调用一个 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)."\")";

但更合适的方法是使用准备好的语句:

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

关于javascript - AJAX和PHP,不会发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32856033/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com