Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2022, 19:10   #1
Blood_ghosT
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 92
По умолчанию По радиокнопке выводить национальности по полу

Всем привет. подскажите пожалуйста как реализовать по выбору пола вывод национальности в нужном роду. Например Русский для мужского и Русская для женского.

есть такой массив.
Код:
$ethnicity_s = array(
        "Male"=> array("1" => __('русский','twp'), "2" => __('казах','twp')) , 
        "Female"=>array("1" => __('русская ','twp'), "2" => __('казашка','twp'))
);
или такой

Код:
$ethnicity_male = array("1" => __('русский','twp'), "2" => __('казах','twp'));
$ethnicity_female= array("1" => __('русская ','twp'), "2" => __('казашка','twp'));
на форме есть радиокнопки мужской женский.

нужно чтобы select менялся по массиву из $ethnicity_s или выбирался $ethnicity_male если мужской.

Код:
<div class="form-input">
    <select name="ethnicity" id="ethnicity">
        <option value=""><?php _e('Select','twp'); ?></option>
            <?php foreach($ethnicity_male as $key=>$s) { ?>
                <option value="<?php echo $key; ?>"<?php if($ethnicity == $key) { echo ' selected="selected"'; } ?>><?php _e($s,'twp'); ?></option>
            <?php  }?>
    </select>
</div>
так я раньше делал когда небыло деления. сейчас нужно делать деление. чет туплю. За ранее спасибо
Blood_ghosT вне форума Ответить с цитированием
Старый 19.09.2022, 19:39   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

А не лучше это сделать через JS, а PHP при создании скрипта скидывает значения обоих массивов. При этом на кнопку реагирует событие JS и в нем идет выбор надписи. Или массив надписей можно запрашивать отдельно через AJAX по клику (OnClick="ajax_update_options();") и при загрузке <body OnLoad="ajax_update_options();">.
macomics вне форума Ответить с цитированием
Старый 19.09.2022, 20:13   #3
Blood_ghosT
Пользователь
 
Регистрация: 29.07.2011
Сообщений: 92
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
А не лучше это сделать через JS, а PHP при создании скрипта скидывает значения обоих массивов. При этом на кнопку реагирует событие JS и в нем идет выбор надписи. Или массив надписей можно запрашивать отдельно через AJAX по клику (OnClick="ajax_update_options();") и при загрузке <body OnLoad="ajax_update_options();">.
Немного не понял что вы имели виду.

Цитата:
Сообщение от macomics Посмотреть сообщение
При этом на кнопку реагирует событие JS
Имеете виду submit?
Blood_ghosT вне форума Ответить с цитированием
Старый 19.09.2022, 20:23   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Нет. Я же привел пример. Вы не дали объявлений ваших кнопок mail/femail. Но если предположить, тогда так
Код HTML:
<script>let male_js_array='<?php foreach ($ethnicity_s["male"] as $key => $str) { ?>
<option value="<?php echo $key; ?>"<?php if($ethnicity == $key) { echo ' selected="selected"'; } ?>><?php _e($str,'twp'); ?></option>
<php } ?>';
let female_js_array='<?php foreach ($ethnicity_s["female"] as $key => $str) { ?>
<option value="<?php echo $key; ?>"<?php if($ethnicity == $key) { echo ' selected="selected"'; } ?>><?php _e($str,'twp'); ?></option>
<php } ?>';
function update_select_options(id, ar)
{
  let sl = document.getElementById(id);
  if (sl) {
    sl.innerHTML = ar;
  }
}</script>
<input name="sex" value="male" type="radio" OnClick="update_select_options('ethnicity', male_js_array);">Male 
<input name="sex" value="female" type="radio" OnClick="update_select_options('ethnicity', female_js_array);">Female
Что-то вроде этого. Или эту же информацию можно получать через ajax, но это писать дольше.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В общем, есть код, по идеи два потока, должны выводить 0,0,1,1,2,2.. и т.д., но выводить 0,1,2,3...0,1,2... и т.д. arrch1 Общие вопросы по Java, Java SE, Kotlin 1 18.02.2020 14:35
[РЕШЕНО]: Как выводить предложение it's my car в языке Паскаль? (как выводить апострофы (') на экран) SASFM Паскаль, Turbo Pascal, PascalABC.NET 2 13.12.2016 21:00
полу авт голосование shellmd5 Работа с сетью в Delphi 6 16.12.2009 12:04