Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX和PHP,不发送数据_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript AJAX和PHP,不发送数据

Javascript AJAX和PHP,不发送数据,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我有一个奇怪的问题,我似乎无法解决 我试图做的是,在一个页面上调用jQuery函数,将该函数的参数发送到同一服务器上的另一个.php文件,让该php文件读取变量,然后将其插入数据库 函数触发器位于div上,如下所示: <div class="add_button" onclick="addImg('<?php echo $value[id]; ?>');"> function addImg(id) { $.ajax({ url:

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

我试图做的是,在一个页面上调用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);
}
<?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();

?>
我在这里使用控制台进行了一些尝试和调试,并且正确执行了console.log()-函数。如果“url”不存在,日志还会给我一个错误500

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

<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);
}
<?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();

?>
在其url的末尾,一个值“123”被添加到数据库中的表中

所以我的假设是,问题在于AJAX函数和PHP文件之间的连接


请帮助:)

在您的问题中,您说变量名是
id
,但在实际的网站上,您提供的名称链接是
img\u 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\u 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=“插入imgs(id)值(\”“.mysqli\u real\u escape\u字符串($id)。”\”);
但更恰当的方法是使用事先准备好的声明:


查看浏览器开发工具网络中的实际请求以获取更多线索。发送的内容是否符合预期?什么是地位?路径是否符合预期等。这将有助于隔离服务器端和客户端问题。您能确切地告诉我怎么做吗?我以前从未真正用过这个。如果你想自己看一看,该功能的页面如下:点击键盘上的F12。。。。开始探索…查找网络选项卡。然后发出一个请求,并在结尾处看到它。我怀疑它调用了错误的URL。尝试使用绝对URL和test。正在发出状态为200的请求,但未返回任何内容…根据insert的状态发回一些内容还猜测您可能正在复制ID。。。db会接受吗?另外,如果ID是字符串,则必须在查询中引用它。