gpt4 book ai didi

php - 我的 Ajax 没有将值传递给 php 页面

转载 作者:行者123 更新时间:2023-11-29 02:24:25 24 4
gpt4 key购买 nike

我有连接到 MySQL 数据库的 phppage.php:

<?php

$list = 'A,B,C';

$cxn = mysqli_connect("localhost", $username, $password, $database) or die("Didn't connect");
$query = "SELECT * FROM Questions3 WHERE 1 IN ($list) ORDER BY RAND() LIMIT 10";

$result = mysqli_query($cxn,$query) or die ("Didn't work");

while( $row = mysqli_fetch_assoc($result) )
{
echo "<div>";
echo $row['columnname'];
echo "</div>";
}

这会抽取 10 个随机数据库条目,其中 A、B 或 C 列的值为“1”。

这个页面本身运行良好。但我实际上需要使用 AJAX(我是新手)从另一个页面使用复选框来调用它。所以不是

$list = 'A,B,C' 

我需要

$list = "data1"

我主页上的 jQuery 在哪里:

$(document).ready(function(){
$("button").click(function(e){
e.preventDefault();
var data1 = 'A,B,C';
$.ajax({url:"phppage.php", type:"POST", data:data1, success:function(result){
$("#display").html(result);
}});
});
})

HTML 是:

<button>Press</button>
<div id="display">Data should show here</div>

(显然在这个简化版本中我​​忽略了复选框)。

但是,当我按下按钮时,显示“无效”。所以我的 JQuery 中的“data1”没有转移成为我在 PHP 中的 $list。

我的 AJAX 有什么问题:如何传输“data1”字符串?

最佳答案

问题在于您在 javascript 中发送数据的方式:

// data1 is a string
data:data1

data 键需要键值对,因此您必须执行如下操作:

data: {'mydata': data1}

然后您将在 $_POST['mydata'] 中使用 php 中的字符串。

当您使用发布的值/用户输入时,您应该确保通过对输入变量使用准备好的语句或 mysqli_real_escape_string() 来避免 sql 注入(inject)。

另请注意,当您在 mysql 中使用 IN 时,您要使用的每个值都必须单独绑定(bind),使用准备语句时不能绑定(bind)范围。

最后,您想检查数字 1 还是您有一个名为 1 的列?如果是后者,需要在反引号中引用:

SELECT * FROM Questions3 WHERE `1` IN (?,?,?) ORDER BY RAND() LIMIT 10
^^^ here

关于php - 我的 Ajax 没有将值传递给 php 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410420/

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