Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: выбор определённой переменной

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: конструкцией if else
Быколай
Отправлено: 21 Марта, 2009 - 04:49:03
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




есть форма, где можно выбрать значение из списка, а можно ввести новое, если нужного нет.
пытался решить так:
form:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. //из БД извлекаются уже существуюшие, вносятся в список(SQL не привожу, там всё выводиться как надо):
  3. <p>Жанр выбрать:
  4. <select name="genre_sel">
  5. <option></option>';
  6. while ($option_genre = mysql_fetch_assoc($select_genre))
  7.   {
  8.   echo '<option>'.$option_genre['GENRE'].'</option>';
  9.   }
  10. echo '
  11. </select>
  12. Задать новый:<input type="text" name="genre_add">
  13.  

php:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. if (isset($genre_add)){$genre=$genre_add;}
  3.  else {$genre=$genre_sel;}

Уже все кажется варианты перебрал: и менял местами, и пытался !isset(), и даже NULL присвоить первому пункту списка, всё равно не получилось чтоб работало как надо:
при выбранном значении списка присваивало $genre его значение, при заполненном поле - значение поля.
Не понял
 
 Top
mosquito
Отправлено: 21 Марта, 2009 - 08:25:09
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2009  
Откуда: Киев


Помог: 0 раз(а)




если это форма то даные наверно нужно обрабатывать после сабмита...
и в зависимости от метода передачи данных get/post будет выглядеть гдето так

if (isset($__GET['genre_add'])){$genre=$__GET['genre_add'];}
else {$genre=$__GET['genre_sel'];}

да и селект же не всегда будет выбран нада наверно еще проверку на isset($__GET['genre_sel'])


-----
They must find it difficult...
Those who have taken authority as the truth,
Razer than truth as the authority.
 
 Top
Быколай
Отправлено: 22 Марта, 2009 - 03:51:57
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




Всё правильно, mosquito, из формы постом передаётся.
Не вижу принципиальной разницы вашего и моего кода, вы только массив Гет указали.
Не работает такая конструкция. Она передаёт только из поля ($genre_add), а при выборе из списка - нет!
Есть у кого идеи?

(Отредактировано автором: 22 Марта, 2009 - 03:53:36)

 
 Top
Гость
Отправлено: 23 Марта, 2009 - 15:52:24
Post Id


УДАЛЁН










Ну может быть надо написать скрипт который будет обращаться в PHP-скрипту и добавлять туда новое значение а потом также подгружать его - те смотрите на клиентскую сторону
 
 Top
Быколай
Отправлено: 23 Марта, 2009 - 16:09:37
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




JustUserR пишет:
Ну может быть надо написать скрипт который будет обращаться в PHP-скрипту и добавлять туда новое значение а потом также подгружать его - те смотрите на клиентскую сторону

? Вообще ощущение что это в пхп должно как-то решаться... По сути-то надо из двух переменных выбрать одну, ту, что определена и её значение передать третей. Может я по малоопытности конструкцию не верно строю?
И тут такой вопрос: что передаёт
, какое значение у переменной - можно ли его проверить isset()? Если да, то логическая конструкция должна решать данную задачу.
 
 Top
Champion Супермодератор
Отправлено: 23 Марта, 2009 - 16:40:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




CODE (text):
скопировать код в буфер обмена
  1. <div id=f0 style='position: absolute; left:0; top:0; z-index: 2'><input id=i size=5></div>
  2. <div id=f1 style='position: absolute; left:0; top:0'>
  3.         <select id=1 >
  4.         <option></option>
  5.         <option value=1>value1</option>
  6.         <option value=2>value1</option>
  7.         </select>
  8. </div>
  9. <br>

А если так? А в скрипте проверять - если инпут не пустой, брать его значение. А на клиенте на выбор значения из selecta увеличить его z-index и очистить input
document.getElementById('f1').style.zIndex=1;
document.getElementById('i').value='';
document.getElementById('f0').style.zIndex=0; - это онклик на optionах. А у пустого option наоборот
 
 Top
Быколай
Отправлено: 23 Марта, 2009 - 17:25:54
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




Champion пишет:

А если так? А в скрипте проверять - если инпут не пустой, брать его значение. А на клиенте на выбор значения из selecta увеличить его z-index и очистить input

вот в том-то и проблема! как в пхп это осуществить: проверять - если инпут не пустой, брать его значение.
на стороне клиента проблемы нет - человек или выберет, или впишет.
 
 Top
Ch_chov
Отправлено: 23 Марта, 2009 - 19:37:20
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




PHP:
скопировать код в буфер обмена
  1. if (empty($_GET['genre_add'])) $genre = $_GET['genre_sel'];
  2. else $genre = $_GET['genre_add'];

или так
PHP:
скопировать код в буфер обмена
  1. $genre = empty($_GET['genre_add']) ? $_GET['genre_sel'] : $_GET['genre_add'];
 
 Top
Быколай
Отправлено: 23 Марта, 2009 - 20:09:50
Post Id



Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




Цитата:
CODE (text):
скопировать код в буфер обмена
  1. $genre = empty($_GET['genre_add']) ? $_GET['genre_sel'] : $_GET['genre_add'];

Вот!!!!!!!! То что надо!! Спасибо человеческое огромное,Ch_chov!!
Буду лучше учить синтаксис! Закатив глазки
Всем спасибо за внимание!

(Отредактировано автором: 23 Марта, 2009 - 20:11:20)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB