Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: умолчания selected= в выпадающем списке
 
 автор: buykz   (21.04.2010 в 23:06)   письмо автору
 
 

никак не могу сообразить как задать умолчания
<?php
if (isset($_GET['sid'])) {$sid $_GET['sid'];}
$result mysql_query("SELECT marriage FROM s WHERE sid='$sid'"); 
$myrow mysql_fetch_array($result);
echo 
"в браке <select name='marriage' id='jumpMenu' style='width:50px;'>";    
$marriage mysql_query("SELECT marriageid,marriage_ FROM marriage",$db); 
while(
$marriage_ mysql_fetch_array ($marriage)) 
{echo 
"<option value=''.$marriage_[marriageid].'' selected=".$myrow[marriage].">$marriage_[marriage_]</option>";} 
echo 
"</select>


проблема в selected=".$myrow[marriage].", как вывести по умолчанию выбранные до данные имея выпадающий список. Сложность в наличии 2х таблиц

  Ответить  
 
 автор: neadekvat   (21.04.2010 в 23:11)   письмо автору
 
   для: buykz   (21.04.2010 в 23:06)
 

> selected=".$myrow[marriage]."
Шо це?

  Ответить  
 
 автор: oliss   (21.04.2010 в 23:48)   письмо автору
 
   для: buykz   (21.04.2010 в 23:06)
 

а парсер на это не ругается?
 value=''.$marriage_[marriageid].'' selected=".$myrow[marriage].">$marriage_[marriage_]

HTML :
selected = "selected"

  Ответить  
 
 автор: buykz   (22.04.2010 в 09:11)   письмо автору
 
   для: oliss   (21.04.2010 в 23:48)
 

так в том то и дело, что так не работает, здесь просто моя идея и то что хотелось бы видеть... подскажите как это же сделать правильно?

  Ответить  
 
 автор: oliss   (22.04.2010 в 09:44)   письмо автору
 
   для: buykz   (22.04.2010 в 09:11)
 

html формы
<form name="f" action="" method="post" >
<select name="xx">
  <option value="" selected="selected">fff</option>
  <option value="">ddd</option>
</select>
</form>

синтаксис php
<?
$select
='<select name="jumpMenu" id="jumpMenu" >';   
$s mysql_query("SELECT `m_id`, `m_name` FROM `marriage` ",$db); 
while(
$mrmysql_fetch_assoc ($s)) 
 {
    
$select.='<option value="'.htmlspecialchars(mr['m_id']).'" >'.htmlspecialchars($mr['m_name']).'</option>';
 } 
$select.='</select>';

echo 
$select;

но это не спасёт, надо сначала разобраться с таблицами, а уж потом делать вывод в селекты

  Ответить  
 
 автор: bab-nike   (22.04.2010 в 12:52)   письмо автору
 
   для: buykz   (21.04.2010 в 23:06)
 

а условие для выбора selected?
По умолчанию какой нужно выбрать?

  Ответить  
 
 автор: neadekvat   (22.04.2010 в 12:54)   письмо автору
 
   для: buykz   (21.04.2010 в 23:06)
 

Да скажите мне, с каких пор у selected могут быть какие-то параметры через = ?
Никогда еще не встречал такого..

  Ответить  
 
 автор: oliss   (22.04.2010 в 13:04)   письмо автору
 
   для: neadekvat   (22.04.2010 в 12:54)
 

http://www.seo-copywrite.ru/xhtml-handbook/_select/

  Ответить  
 
 автор: Trianon   (22.04.2010 в 13:10)   письмо автору
 
   для: neadekvat   (22.04.2010 в 12:54)
 

Строгая спецификация не допускает в элементах тегов висячих атрибутов без значений.

  Ответить  
 
 автор: neadekvat   (22.04.2010 в 13:17)   письмо автору
 
   для: Trianon   (22.04.2010 в 13:10)
 

Ого себе. Я больше пяти лет находился в заблуждении ><

  Ответить  
 
 автор: bab-nike   (22.04.2010 в 13:03)   письмо автору
 
   для: buykz   (21.04.2010 в 23:06)
 

вот пример
<select name="model" >
          <option value="bmv" <?php if (!(strcmp(bmv$row_avto['model']))) {echo "selected=\"selected\"";} ?>>BMV</option>
          <option value="audi" <?php if (!(strcmp(audi$row_avto['model']))) {echo "selected=\"selected\"";} ?>>AUDI</option>
          <option value="opel" <?php if (!(strcmp(opel$row_avto['model']))) {echo "selected=\"selected\"";} ?>>OPEL</option>
</select>

  Ответить  
 
 автор: buykz   (22.04.2010 в 23:31)   письмо автору
 
   для: bab-nike   (22.04.2010 в 13:03)
 

существует главная таблица о персонале
<?php
$result 
mysql_query("SELECT * FROM s WHERE sid='$sid'");  
$myrow mysql_fetch_array($result);

которая содержит данные, например, мужчина-женщина (ввиде числа, т.е. 1 или 2 или 3), где 1=пусто
при редактировании данных для понятного вывода используем связную таблицу
<?php
$sex 
mysql_query("SELECT `sexid`, `sex_` FROM `s_sex` ",$db);  
while(
$sex_mysql_fetch_assoc ($sex))


Главный вопрос, как при выводе окна редактирования в поле с выпадающим список отобразить существующее значение, главной таблицы(соответственно используя данные связной таблицы для визуального отображения данных)

если можно на пальцах, я еще на старте
<?php
$selectsex
='<select name="jumpMenu" id="jumpMenu" >';    
$sex mysql_query("SELECT `sexid`, `sex_` FROM `s_sex` ",$db);  
while(
$sex_mysql_fetch_assoc ($sex))
{
$selectsex.='<option value="'.htmlspecialchars($sex_['sexid']).'" '?><?php if (!(strcmp(7777777$myrow['sex']))) {echo "selected=\"selected\"";}?><? ' >'.htmlspecialchars($sex_['sex_']).'</option>'; }  
$selectsex.='</select>'
echo 
$selectsex;

что ставить вместо 7777777;
и еще я похоже не правильно использовал ' " и ?><?php в данном примере;
можно ли здесь использовать $myrow['sex'] из предыдущего запроса?
Заранее спасибо, за полный и понятный ответ!

  Ответить  
 
 автор: bab-nike   (23.04.2010 в 02:07)   письмо автору
 
   для: buykz   (22.04.2010 в 23:31)
 

ну во первых относительно второй таблицы, можно было просто на первой добавить поле sex типа ENUM и дать три значения
1- пусто(по умолчанию)
2- м.
3- ж.
меню будет выглядеть так
<select name="sex" > 
          <option value="1" <?php if (!(strcmp("1"$myrow['sex']))) {echo "selected=\"selected\"";} ?>>не определился</option> 
          <option value="2" <?php if (!(strcmp("2"$myrow['sex']))) {echo "selected=\"selected\"";} ?>>Муж.</option> 
          <option value="3" <?php if (!(strcmp("3"$myrow['sex']))) {echo "selected=\"selected\"";} ?>>Жен.</option> 
</select>

Если же нет, то в вашем случае вместо 7777777 должно быть то значение, что принимает value, в данном случае $sex_['sexid'], вот справка по функции strcmp http://www.softtime.ru/dic/id_dic=59&id_group=1
p.s. придерживаюсь мнения, что вторая таблица лишняя.

  Ответить  
 
 автор: oliss   (23.04.2010 в 09:38)   письмо автору
 
   для: bab-nike   (23.04.2010 в 02:07)
 

вообще то тараканы бывают гермафродиты ,а человек должен сам определить какой у него пол,ну хотя бы на ощупь
уберите поле неопределённости (третье состояние) ,сделайте это поле обязательным к заполнению

  Ответить  
 
 автор: buykz   (23.04.2010 в 17:27)   письмо автору
 
   для: bab-nike   (23.04.2010 в 02:07)
 

к сожалению здесь результат нулевой:
<?php
$selectsex
='<select name="jumpMenu" id="jumpMenu" >';    
$sex mysql_query("SELECT `sexid`, `sex_` FROM `s_sex` ",$db);  
while(
$sex_mysql_fetch_assoc ($sex))
{
$selectsex.='<option value="'.htmlspecialchars($sex_['sexid']).'" '?><?php if (!(strcmp($sex_['sexid'], $myrow['sex']))) {echo "selected=\"selected\"";}?><? ' >'.htmlspecialchars($sex_['sex_']).'</option>'; }  
$selectsex.='</select>'
echo 
$selectsex;


я взял пример с полом за пример, будет конечно же здесь радио кнопки, а есть и национальность(там их 20) и пр.
функцию strcmp я с первого раза попытался понять, и примерно понял ,т.к. это пока для меня как английский язык, все слова знаю, но смысла не всегда
если не ошибаюсь: если какое-то значение $sex_['sexid'] равно $myrow['sex'], то вывести select, а как он понимает что выбрал нужное значение, или я что-то с синтаксисом перепал
я извиняюсь уже, сколько над этой проблемкой бьюсь, и времени нет и задача определена, помоги пожалуйста понять. как не странно, у всех подобных проблем, такие простые решения

  Ответить  
 
 автор: bab-nike   (24.04.2010 в 00:45)   письмо автору
 
   для: buykz   (23.04.2010 в 17:27)
 

кстате говоря, только заметил, вам не кажется что запрос ко второй таблице не правильный.?
нету условия выбора, кажется должен быть так
$sex = mysql_query("SELECT `sexid`, `sex_` FROM `s_sex` WHERE sexid=$id_user ",$db);

и если возможно структуру второй таблицы напишите.

  Ответить  
 
 автор: buykz   (24.04.2010 в 11:37)   письмо автору
 
   для: bab-nike   (24.04.2010 в 00:45)
 

но вторая таблица выводит все данные из таблицы в выпадающий список

  Ответить  
 
 автор: bab-nike   (24.04.2010 в 16:23)   письмо автору
 
   для: buykz   (24.04.2010 в 11:37)
 

в том то и дело, если в список выводятся только один из трех значений, т.е. либо 1, либо 2, либо 3, то можно предположить что вторая таблица используется чисто для выбора параметра пола, то есть там нету поле скажем id_user , который являлся бы ключем присвоения пола для текущего id_user. В таком случае использование этой таблицы не целесообразно. Я так думаю эта таблица должна выглядеть так примерно
| sexid |id_user|sex_|
|__1__| __3746_|__1__|
|__2__|__67___|__2__|
|__3__|__87___|__1__|
|__4__|__94___|__3__|

здесь sex_ опять таки должен быть типа ENUM, с тремя /можно и два конечно/ значениями.
предположим для id_user=67 по умолчанию sex_ =2, если он хочет менять значение, тут в меню задается значение по умолчанию
<option value="2" <?php if (!(strcmp("2"$myrow['sex']))) {echo "selected=\"selected\"";} ?>

Если так, то лучше поле sex_ создать в таблице users и тоже самое там организовать без заморочек

  Ответить  
 
 автор: buykz   (26.04.2010 в 22:45)   письмо автору
 
   для: buykz   (21.04.2010 в 23:06)
 

Спасибо, за поддержку, как обычно все просто:
<?php
$selectsex
='<select name="jumpMenu" id="jumpMenu" >';    
$sex mysql_query("SELECT * FROM `s_sex` ",$db);  
while(
$sex_mysql_fetch_array ($sex))
{
    
$selectsex.='<option value="'.$sex_['sexid'].'" ';
    if (
$sex_["sexid"] == $myrow["sex"]) 
    {
        
$selectsex.= ' selected';
    }
    
$selectsex.= '>'.$sex_["sex_"].'</option>';
}  
$selectsex.='</select>'
echo 
$selectsex;
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования