Помогите пожалуйста! Есть форма PHP: <form name="form1" method="post" action="add_data.php"> <p> <label>Month<br> <input type="text" name="month" id="month"> </label> </p> <p> <label>Day<br> <input type="text" name="day" id="day"> </label> </p> <p> <label>Year<br> <input type="text" name="year" id="year"> </label> </p> Есть обработчик <?php if (isset($month) && isset($day) && isset($year)) { $result = mysql_query ("UPDATE countdata SET month='$month', day='$day', year='$year' WHERE id='$id'"); if ($result == 'true') {echo "<p>Succes!</p>";} else {echo "<p>Fall</p>";} } else { echo "<p>3var.</p>"; } ?> Мне необходимо вводить в форму название месяца по русски, например - (Январь). А в базу должно лететь - January Думаю нужна подмена переменной типа str_replace. Но как это реализовать?
создаешь два массива с месяцами. Один на русском, второй на английском с одинаковыми индексами для одного и того же месяца. (т е $ru[0]="Январь"; $en[0]="January"; и т д) Получаешь "Январь", находишь соответствие в первом массиве, применяешь тот же индекс ко второму массиву и получаешь "January".
Простите я новичок! Массив должен быть таким? $month = array( '$ru'[0]="Январь" => '$en'[0]="January"); Каким образом я получаю соответствие в первом массиве? Как мне это вставить в мой скрипт? Напишите пожалуйста пример
вот как то так PHP: $month = array( 'ru' => array( 0 => 'Январь, ), 'en' => array( 0 => 'January', ), ); а если привыкать к пхп7 то вот так PHP: $month = [ 'ru' => [ 0 => 'Январь, ], 'en' => [ 0 => 'January', ], ]; --- Добавлено --- если несколько элементов добавить надо, то вот так.. PHP: $month = array( 'ru' => array( 0 => 'Январь, 1 => 'Февраль', ), 'en' => array( 0 => 'January', 1 => 'february', ), );
У Вас там input type text - это форма для ввода текста.. Я так понимаю хочется что бы был выбор из списка? тогда как то так PHP: <select> <? foreach($month['ru'] AS $m) ?> <option><?=$m?></option> <? endforeach; ?> </select>
Если так ,то не работает HTML: <form name="form1" method="post" action="add_data.php"> <select> <option><? $month = array( 'ru' => array( 0 => 'Январь', 1 => 'Февраль', ), 'en' => array( 0 => 'January', 1 => 'february', ), ); foreach($month['ru'] AS $m) ?></option> <option><?=$m?></option> <? endforeach; ?> </select> <p> <label>Month<br> <input type="text" name="month" id="month"> </label> </p> <p> <label>Day<br> <input type="text" name="day" id="day"> </label> </p> <p> <label>Year<br> <input type="text" name="year" id="year"> </label> </p> <p> <label> <input type="submit" name="submit" id="submit" value="Save new data"> </label> </p> </form> Ошибку выдает с endforeach
вставляйте пожалуйста код в тег для кода.. это первая кнопка в панели бб кодов над текстовым полем, где Вы пишите комменты к теме PHP: <?php $month = array( 'ru' => array( 0 => 'Январь', 1 => 'Февраль', ), 'en' => array( 0 => 'January', 1 => 'february', ), ); ?> <form name="form1" method="post" action="add_data.php"> <select> <?php foreach($month['ru'] as $m) : ?> <option><?=$m?></option> <?php endforeach; ?> </select> <p> <label>Month<br> <input type="text" name="month" id="month"> </label> </p> <p> <label>Day<br> <input type="text" name="day" id="day"> </label> </p> <p> <label>Year<br> <input type="text" name="year" id="year"> </label> </p> <p> <label> <input type="submit" name="submit" id="submit" value="Save new data"> </label> </p> </form>
В форме просто: HTML: <select> <option>Январь</option> <option>Февраль</option> <option>Март</option> <!-- и т д... Можешь вцикле выводить из массива, можешь просто прописать. --> </select> А массивы в обработчике формы. Почитай про array-search Принимаешь свой "Январь", скармливаешь его этой функции, она возвращает индекс элемента со значением "Январь" По этому индексу находишь свой "January" во втором массиве. Всё просто.
если нужен выпадающий список, то не проще ли тогда сделать подобную форму HTML: <select name="month"> <option disabled>Выберите месяц</option> <option value="January">Январь</option> <option value="February">Февраль</option> <option value="March">Март</option> <option value="April">Апрель</option> /* и так далее */ </select> и никаких массивов не надо... --- Добавлено --- @alexwebdev в коде выше в базу полетят англ. названия