Я перестраиваю свой сайт с помощью CodeIgniter. В настоящее время я создаю страницу регистрации и ищу наиболее эффективный/стратегический способ сделать динамическое падение. Это социальная сеть для сообщества кистозных фиброзов. При этом, когда вы регистрируетесь, есть выпадающее меню, которое задает ваше отношение к CF.Как сделать динамическое падение в CodeIgniter?
Есть два варианта: 1. У меня есть CF и 2. Кто-то, кого я знаю, имеет CF. Я хотел сделать его туда, где при выборе 1. НОВЫЙ выпадающий появляется с опционами, и то же самое для 2.
Здесь находится код контроллера:
function relation_dropdown($relation="relation", $top_relations=array()) {
$relations = array(
"choose"=>"Choose One",
"I have CF"=>"I have CF",
"Someone I know has CF"
);
$html = "<select name='{$relation}'>";
if(!empty($top_relations)){
foreach($top_relations as $value){
if(array_key_exists($value, $relations)){
$html .="<option value='{$value}'>{$relations[$value]}</option>";
}
}
$html .="<option>----------</option>";
}
foreach($relations as $key => $relation){
$html .="<option value='{$key}'>{$relation}</option>";
}
$html .="</select>";
return $html;
}
и форма на представлении:
<div id="signup_form">
<?php
echo validation_errors();
echo form_open('general/send?');
echo "<div class='form_text'>First Name</div>";
echo form_input('first_name');
echo "<div class='form_text'>Last Name</div>";
echo form_input('last_name');
echo "<div class='form_text'>Email</div>";
echo form_input('email');
echo "<div class='form_text'>Confirm Email</div>";
echo form_input('confirm_email');
echo "<div class='form_text'>Password</div>";
echo form_input('password');
echo "<div class='form_text'>Confirm Password</div>";
echo form_input('confirm_password');
echo "<div class='dropdown_structure'>";
echo "<div class='form_text'>";
echo "Location";
echo "</div>";
echo country_dropdown('country');
echo "</div>";
echo "<div class='dropdown_structure'>";
echo "<div class='form_text'>";
echo "Relation To CF";
echo "</div>";
echo relation_dropdown('relation');
echo "</div>";
echo form_close();
?>
</div>
Так что мой вопрос - это лучший способ сделать это?
заранее спасибо
'Для этого требуется второй контроллер, который возвращает данные для второго раскрывающегося списка. Не нужно, достаточно другого метода контроллера –
Это правильно. Я лично предпочитаю разделять контроллеры, которые выводят страницы, а не те, которые используются для ответов AJAX, но это не требуется. – minboost
Я тоже, но если мне нужно сделать 10 различных запросов ajax (на разных страницах), создание 10 контроллеров для этого будет излишним.Если для приложения требуется много вызовов ajax, я обычно группирую их в «контроллер ajax», иначе я использую метод контроллера текущей страницы (также проверяя, действительно ли запрос является ajax). –