我在html <option>
中的城市列表没什么问题。
想要列出所有城市
<select><option>.....citylisting.....</option></select>
我的清单是这样的:
$citylist = array('Adana', 'Adıyaman', 'Afyonkarahisar', 'Ağrı', 'Amasya', 'Ankara');
如果我使用print_r;给我数组列表,
Array ( [0] => Adana [1] => Adıyaman [2] => Afyonkarahisar [3] => Ağrı [4] => Amasya [5] => Ankara)
我在php中的新手,我可以使用此值在城市列表中使用吗? 谢谢,
答案 0 :(得分:4)
<%= @service.title %>
答案 1 :(得分:3)
您需要使用foreach循环来迭代数组,并且需要将该数组值传递给<select><option>
。
尝试下面的代码:
<?php
$citylist = array('Adana', 'Adıyaman', 'Afyonkarahisar', 'Ağrı', 'Amasya', 'Ankara');
echo "<select name='city' id='cities' class='city'>>";
foreach ($citylist as $city) {
echo "<option value='$city'>$city</option>";
}
echo "</select>";
答案 2 :(得分:2)
您可能希望在PHP中使用foreach
:
<?php
$arr = ['Adana', 'Adıyaman', 'Afyonkarahisar', 'Ağrı', 'Amasya', 'Ankara'];
$options = '';
foreach ($arr as $k => $v) {
$options .= '<option value="'.$k.'">'.$v.'</option>';
}
$options = '<select name="foobar">'.$options.'</select>';
echo $options;
$arr
是数组;您可能更喜欢使用 echo()来打印$options
而不是 print_r():第一个不会格式化您的选项,如第二个那样。 ..
或我喜欢的内联风格:
<?php
$arr = ['Adana', 'Adıyaman', 'Afyonkarahisar', 'Ağrı', 'Amasya', 'Ankara'];
?>
<select name="foobar">
<?php foreach ($arr as $k => $v): ?>
<option value="<?= $k; ?>"><?= $v; ?></option>
<?php endforeach; ?>
</select>
答案 3 :(得分:1)
是什么意思? :)
<select><?php foreach ($citylist as $city) { echo "<option>$city</option>"; } ?></select>
答案 4 :(得分:0)
(PHP 4, PHP 5, PHP 7)
for循环是PHP中最复杂的循环。他们的行为就像他们的C同行一样。 for循环的语法是:
for (expr1; expr2; expr3) {
statement
}
第一个表达式(expr1)在循环开始时无条件地计算(执行)。
在每次迭代开始时,将评估expr2。如果它的计算结果为TRUE,则循环继续并执行嵌套语句。如果计算结果为FALSE,则循环的执行结束。
在每次迭代结束时,expr3被评估(执行)。
每个表达式都可以为空或包含用逗号分隔的多个表达式。在expr2中,将使用逗号分隔所有表达式,但结果取自最后一部分。 expr2为空意味着循环应该无限期运行(PHP隐式地将其视为TRUE,如C)。这可能没有您想象的那么无用,因为通常您希望使用条件break语句而不是使用for truth表达式来结束循环。校验 doc
FOREACH LOOP
(PHP 4,PHP 5,PHP 7) foreach构造提供了一种迭代数组的简单方法。 foreach仅适用于数组和对象,并且当您尝试在具有不同数据类型或未初始化变量的变量上使用它时将发出错误。有两种语法:
foreach (array_expression as $value) {
statement
}
foreach (array_expression as $key => $value) {
statement
}
第一个表单循环遍历array_expression给出的数组。在每次迭代中,当前元素的值被赋值为$ value,内部数组指针被提前一个(因此在下一次迭代中,您将看到下一个元素)。
第二种形式还会在每次迭代时将当前元素的键分配给$ key变量。 DOC
是的,你的解决方案就在这里
<select>
<?php
$citylist = array(
'Adana',
'Adıyaman',
'Afyonkarahisar',
'Ağrı',
'Amasya',
'Ankara'
);
echo populate_option($citylist, "");
?>
</select>
你的功能在这里
<?php
function populate_option($citylist, $selected_option = "")
{
foreach ($citylist as $city) {
if ($selected_option !== "" && $city === $selected_option) {
echo "<option value='".$city."' selected>$city</option>";
} else {
echo "<option value='".$city."'>$city</option>";
}
}
}
答案 5 :(得分:0)
试试这个,
name
答案 6 :(得分:0)
尝试这样的事情。
<?php
$citylist = array('Adana', 'Adıyaman', 'Afyonkarahisar', 'Ağrı', 'Amasya', 'Ankara');
echo "<select name='city'>";?><?php
foreach ($citylist as $key => $value) {
echo "<option value=".$value.">".$value."</option>";
}
echo "</select>";
?>