我正在尝试创建一个网页,将采取用户的首选项(通过复选框)的类别,他们想要的报价。在提交时,我使用ajax访问PHP文件,该文件又访问SQL数据库并返回类别中的引用。
我的目标是允许用户选择一个或多个类别,并让他们的选择返回数据库中属于他们的类别的随机行。我已经达到了这样一种情况:从数据库返回一个随机行,但是不确定如何将值传递给SQL查询,以便根据他们的偏好更改查询。
下面是AJAX:
$.ajax({
url: 'php/function.php', data: "", dataType: 'json',
success: function(data)
{
var quote = data[0];
$('#content').html(quote);
} 下面是PHP代码:
$result = mysql_query('SELECT * FROM motivators WHERE Category LIKE "%success%" ORDER BY RAND() LIMIT 1');
$array = mysql_fetch_row($result);
echo json_encode($array);如何传入一个和/或多个值来替换%success%?
发布于 2013-05-18 04:48:14
要从ajax调用中获取数据,请将其传递到调用的data参数中,如下所示:
var param_value;
var param2_value;
$.ajax({
url: 'php/function.php', data: {param: param_value, param2: param2_value}, dataType: 'json', type: "POST",
success: function(data)
{
var quote = data[0];
$('#content').html(quote);
} 注意上面的类型: POST,这意味着传递的数据值将存储在$_POST数组的键中:$_POST‘’param‘,$_POST'param2’
然后,只需将查询放在双引号中("“而不是''),并将所需的php变量插入其中。
$result = mysql_query("SELECT * FROM motivators WHERE Category LIKE '%$success%' ORDER BY RAND() LIMIT 1");确保对插入到查询中的任何内容进行转义,以避免SQL注入漏洞。
发布于 2013-05-18 04:46:43
您可以像这样传递变量:
$.ajax({
type: 'POST',
url: 'php/function.php',
data: {
'foo': 'bar',
},
success: function(data){
var quote = data[0];
$('#content').html(quote);
}
});然后,在您的PHP脚本中,您可以访问应该用bar填充的$_POST['foo']。
发布于 2013-05-18 04:46:53
这就是.ajax()调用的data:部分:
data: 'formfield=somevalue'然后在PHP中:
$formfield = $_GET['somevalue'];请注意,不要在SQL查询中直接使用此值,这将使您很容易受到SQL注入攻击。我强烈建议您停止使用过时的mysql_*()函数库,改用现代的mysqli或PDO库。一旦使用了这些,一个带有适当占位符的简单的预准备语句就会变得容易得多。
https://stackoverflow.com/questions/16617594
复制相似问题