我发送的变量有多个这样的值:
JQUERY:
$(".indexMain").load('indexMain.php?color=' + colors.join("+"), function()
- > indexMain.php?颜色=蓝+红棕色+
我想_GET这些值,然后在while循环中使用它们将它们放入像这样的SQL查询中:
$items = $con -> prepare("SELECT * FROM item_descr WHERE color_base1 = :colorbase1");
$items -> bindValue(":colorbase1", $color);
谢谢!
编辑:这是我当前的代码,但它不起作用,它只显示与第一种颜色相对应的项目。
foreach (explode(' ', $_GET['color']) as $color)
{
$items = $con -> prepare("SELECT * FROM item_descr WHERE color_base1 = :colorbase1");
$items -> bindValue(":colorbase1", $color);
}
答案 0 :(得分:3)
indexMain.php?color=blue+red+brown
应该是
indexMain.php?colors%5B%5D=blue&colors%5B%5D=red&colors%5B%5D=brown
相当于
indexMain.php?colors[]=blue&colors[]=red&colors[]=brown
这将创建一个可以$_GET['colors']
访问的数组。之后使用这个PHP:
foreach ($_GET['colors'] as $color) {
$query = $con->prepare("SELECT * FROM item_descr WHERE color_base1 = :colorbase1");
if ($query->execute(":colorbase1", $color)) {
// use results from query
} else {
// handle failed query
}
}
如果您不想更改查询字符串,可以选择执行此操作:
foreach (explode(' ', $_GET['colors']) as $color) {
$query = $con->prepare("SELECT * FROM item_descr WHERE color_base1 = :colorbase1");
if ($query->execute(":colorbase1", $color)) {
// use results from query
} else {
// handle failed query
}
}
请注意,唯一的变化是在第一行,我们用空格分割字符串(因为“+”转换为空格字符)。
另请注意,这两个示例均假定$_GET['colors']
已定义。您可以使用isset()
检查是否已定义。
答案 1 :(得分:0)
我认为这应该有效:
$colors = explode(' ', $_GET['color']);
foreach($colors as $color) {
// your code here...
}
答案 2 :(得分:0)
试试这个
$colors = explode("+", $_GET['color']);
foreach($colors as $color){
$items = $con -> prepare("SELECT * FROM item_descr WHERE color_base1 = :colorbase1");
$items -> bindValue(":colorbase1", $color);
}
这个怎么样
$colors = explode(" ", $_GET['color']);
foreach($colors as $color){
$items = $con -> prepare("SELECT * FROM item_descr WHERE color_base1 = :colorbase1");
$items -> bindValue(":colorbase1", $color);
}