#javascript #php #jquery #forms
#javascript #php #jquery #формы
Вопрос:
У меня есть переменная php $a
типа int. Теперь, если $a=1;
тогда должны быть видны только первые два параметра, если $a=2;
тогда должны отображаться только первые три параметра и так далее. Как я могу этого добиться?
echo "<form class='form-horizontal'>
<fieldset >
<span class='control-group' >
<span class='controls'>
<select id='fl' class='form-control' style='cursor:pointer;'>
<option " . ($default == 0 ? "selected='selected'" : "") . " style='display:none;' value='0'>Select</option>
<option " . ($default == 1 ? "selected='selected'" : "") . " value='1'>Option1</option>
<option " . ($default == 2 ? "selected='selected'" : "") . " value='2'>Option2</option>
</select>
</span>
</span>
<div><button id='mybtn' type='button'>Save</button></div>
</fieldset>
</form>";
Ответ №1:
Кажется идеальной возможностью для for
цикла.
// put your values into an array for easy access inside the loop
$options = array(
1 => "Option1",
2 => "Option2",
3 => "Option3",
etc...
);
// output the beginning of the <select> html
echo "<select id='fl' class='form-control' style='cursor:pointer;'>
<option " . ($default == 0 ? "selected='selected'" : "") . " style='display:none;' value='0'>Select</option>";
// loop through items until we reach our limit, set in $a
for ($i = 1; $i < $a; $i ) {
echo "<option " . ($default == $i ? "selected='selected' " : "") . "value='" . $i . "'>" . $options[i] . "</option>";
}
// output the end of the <select> html to close it off
echo "</select>"
Ответ №2:
Поместите параметры в переменную на основе $a
значения перед echo
и используйте эту переменную в echo
<?php
$options = '';
if($a==1)
{
$options = "<option " . ($default == 0 ? "selected='selected'" : "") . " style='display:none;' value='0'>Select</option>
<option " . ($default == 1 ? "selected='selected'" : "") . " value='1'>Option1</option>";
}
else if($a==2)
{
$options = "<option " . ($default == 0 ? "selected='selected'" : "") . " style='display:none;' value='0'>Select</option>
<option " . ($default == 1 ? "selected='selected'" : "") . " value='1'>Option1</option>
<option " . ($default == 2 ? "selected='selected'" : "") . " value='2'>Option2</option>";
}
echo "<form class='form-horizontal'>
<fieldset >
<span class='control-group' >
<span class='controls'>
<select id='fl' class='form-control' style='cursor:pointer;'>
".$options."
</select>
</span>
</span>
<div><button id='mybtn' type='button'>Save</button></div>
</fieldset>
</form>";
?>
Комментарии:
1. Спасибо.. это сработало, но после использования вашего ответа я придумал немного более элегантное решение:if ($a>=1){echo » «выбранный=’выбранный'» : «») . » значение=’1′>Параметр 1</option>»; если ($a>=2){echo » «выбранный=’выбранный'» : «») . » значение=’2′>Параметр 2</option>»; }}