0

我遇到了一个问题,我不知道我应该如何处理它。

我想让我的网站的用户能够从 5 个选项中进行选择,例如;

汽车、火车、飞机、雪地摩托、沙滩车。

根据他们的选择,它将重定向到 URL 中带有变量 ?choice=cars 的页面(这部分我知道该怎么做。)例如 configure_choice.php?choice=cars

然后,在访问此页面时,我想生成 8 个下拉框,每个下拉框都有不同的 HTML 标识符。请注意,这些下拉框因选择而异。

所以,如果他们选择汽车,我会想要:

<select name="car1" class="dropdown">
<option>Chevrolet</option>
<option>GM</option>
<option>Cadillac</option>
</select>

<select name="car2" class="dropdown">
<option>Chevrolet</option>
<option>GM</option>
<option>Cadillac</option>
</select>

<select name="car3" class="dropdown">
<option>Chevrolet</option>
<option>GM</option>
<option>Cadillac</option>
</select>

... 以此类推,一直到 8。

我想过分配类似的东西

for($j = 1, $j <= 8, ++$j)
{
$car_dropdown_$j = "<select name=""car" . "$j"" class="dropdown">
    <option>Chevrolet</option>
    <option>GM</option>
    <option>Cadillac</option>
    </select>";

echo $car_dropdown_$j;
}

但是当我尝试运行这个循环时,我收到以下错误:

解析错误:语法错误,意外 ')',期待 ';' 在 C:\web\encodetest.php 第 5 行

而且我也不知道你是否可以像这样在 HTML 标记中放置一个变量并让它正常工作。

基本上,我正在尝试设置 8 个变量,我可以将它们放入我的 HTML 的某个地方,并让下拉框是唯一的,因此当发送到 MySQL 时,它们可以被识别。这里有什么帮助吗?

非常感谢!

4

3 回答 3

1
for($j = 1; $j <= 8; $j++) //goodeye adam catching the ;
{
$car_dropdown[$j] = "<select name='car" . $j . "' class=\"dropdown\">
    <option>Chevrolet</option>
    <option>GM</option>
    <option>Cadillac</option>
    </select>";

echo $car_dropdown[$j];
}
于 2013-08-01T20:01:29.127 回答
0

正确的语法是:for($j = 1; $j <= 8; ++$j). 语句由 . 分隔;

要将变量插入字符串,您可以这样做

echo "<select name=\"car" . $j . "\" class=\"dropdown\">"; 

或者

echo "<select name=\"car$j\" class=\"dropdown\">"; 

请注意,字符串中的引号应该被转义,\否则它们将被视为字符串的结尾。

于 2013-08-01T19:58:21.750 回答
0

有一些语法错误,其他答案也不起作用......

首先你需要使用; 在 for 循环中。对于动态变量,您需要使用[$j]

要将字符串粘在一起,您必须使用“.$j.”

for($j = 1; $j <= 8; $j++){
    $car_dropdown[$j] = '<select name="car' . $j . '" class="dropdown">
        <option>Chevrolet</option>
        <option>GM</option>
        <option>Cadillac</option>
        </select>';

    echo $car_dropdown[$j];
}
于 2013-08-01T20:03:31.883 回答