2014-01-10 3 views
0

У меня есть динамическое выпадающее меню в форме PHP, которое отлично работает в том смысле, что оно извлекает/вводит правильный идентификатор и не обрабатывает форму, если никакой выбор не собирается.Создание динамического выпадающего меню, липкого в php

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

Ниже выпадающее меню:

echo '<div align="left"> 
<select name="dealership_id"> 
<option value="NULL">Choose a Dealer:</option>'; 
$query = 'SELECT * FROM dealership ORDER BY users_dealer_name ASC'; 
$result = mysql_query ($query); 
while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
echo "<option value=\"$row[0] \" <?php if (isset($_POST['dealership_id']) && $_POST['dealership_id'] == '$row[0]') {echo 'selected=\"selected\"';} ?> >$row[3]</option>"; 
} 
// Complete the dropdown 
echo '</select> 
</div> 
'; 

Ниже приводится код проверки

if (isset($_POST['dealership_id'])) { 
$dealer_id = (int) $_POST['dealership_id']; 
} else { 
$dealer_id = 0; 
} 
if ($dealer_id > 0) { 
$query = "SELECT dealership_id FROM dealership WHERE dealership_id=$dealer_id"; 
$result = mysql_query ($query); } 
else { 
echo '<p><font color="red">Please select your Dealership</font></p>'; 
} 

BTW, строка 0 является первичным ключом, строка 3 это имя.

+0

Sticky? Как позиция: фиксированная? – bjb568

+0

Нет, когда пользователь заполняет форму в своем браузере и пропускает обязательное поле и форма не заполняется. Поэтому, когда они заполняют форму выше, форма не отправляется, а показывает сообщение об ошибке. Однако вместо того, чтобы сохранить выбранный вариант, он выбирается, он возвращается к опции «Выбрать дилера». – AdamMc

+0

Это не похоже на проблему с липкостью. Это звучит как проблема php. – bjb568

ответ

1

Я не думаю, что должно быть одинарные кавычки вокруг $row[0] в следующих:

$_POST['dealership_id'] == '$row[0]' 

Используя одиночные кавычки, вы в буквальном смысле сравнения строку $ строки [0] вместо значения переменной

Вот ваш код с некоторыми изменениями, которые, по крайней мере, являются синтаксисом; Я не проверял, работает ли он, но он должен. Было бы полезно исследовать конкатенацию строк в php, некоторую полезную информацию здесь: http://www.php.net/manual/en/language.operators.string.php

echo '<div align="left"> 
<select name="dealership_id"> 
<option value="NULL">Choose a Dealer:</option>'; 

$query = 'SELECT * FROM dealership ORDER BY users_dealer_name ASC'; 
$result = mysql_query ($query); 

while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
    echo "<option value=\"$row[0]\""; 
    if (isset($_POST['dealership_id']) && $_POST['dealership_id'] == $row[0]){ 
     echo ' selected=\"selected\"'; 
    } 
    echo ">$row[3]</option>"; 
} 
// Complete the dropdown 
echo '</select> 
</div> 
'; 
+0

Это не работает unfortunatley – AdamMc

+0

Также можно попробовать удалить теги , - это трудно сказать из вашего фрагмента, но похоже, что все это в синтаксическом кодовом блоке, поэтому вы не могли бы вставлять такие тэги, не выйдя из

+0

Ничего нового, я не уверен, куда идти отсюда. – AdamMc

Смежные вопросы