Jump to content
  • 0

mysql php выпадающее меню формы


RK3DNP
 Share

Question

Добрый день, имеется файл с формой, где несколько пунктов выбираются через выпадающее меню и заносятся в базу

 <td>Учетка</td><td>
	<select name="uchetka">
		<option value="нет">нет</option>
        <option value="да">да</option>
    </select>
	</td>
    </tr><tr>
	</tr><tr>
    <td>Оборудование</td><td>

		<select name="komp">
		<option value="нет">нет</option>
        <option value="да">да</option>
    </select>
	</td>

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

if (isset($_POST['submit_edit'])) {
  $id = $_POST['id'];	
  $fio = $_POST['fio'];
  $boss = $_POST['boss'];
  $office = $_POST['office'];
  $position = $_POST['position'];
  $data = $_POST['data'];
  $oborudov = $_POST['oborudov'];
  $uchetka = $_POST['uchetka'];
  $komp = $_POST['komp'];
$query = "UPDATE $table set fio= '$fio', boss= '$boss', office= '$office', position= '$position', data= '$data', oborudov= '$oborudov', uchetka='$uchetka', komp='$komp' where id = '$id'";
$sql = mysqli_query($con, $query);
}    
   
  ....
    while( $row = mysqli_fetch_assoc($query) ){ 
  ...
    echo "<td>Место работы</td><td><input size=\"30\" type=\"text\" value=\"".$row['office']."\" name=\"office\" /></td>\n";
    echo "</tr><tr>\n";
    echo "<td>Готовность учетки</td><td><select name=\"uchetka\"><option value=\"нет\">нет</option><option value=\"да\">да</option></select></td>\n";
    echo "</tr><tr>\n";
	echo "<td>Готовность компа</td><td><select name=\"komp\"><option value=\"нет\">нет</option><option value=\"да\">да</option></select></td>\n";
    echo "</tr><tr>\n";

Но тут получается, что данные не подтягиваются из базы. Как можно сделать, чтобы значение подтянулось из базы и в тоже время можно было выбрать другое из выпадающего меню, сохранив его в базе.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0
22 минуты назад, DivMan сказал:

Не вижу вывода значений из БД

предлагаете  так?
 

echo "<td>Готовность компа</td><td><select name=\"komp\"><option value=\"".$row['komp']."\" value=\"нет\">нет</option><option value=\"да\">да</option></select></td>\n";

Тут просто получится, что два раза значение Да или Нет будет.

Link to comment
Share on other sites

  • 0

1. запрос, который как я понимаю возвращает $row
2. формирование массивов, выбранных элементов в выпадающих списках, хранящихся в базе, например:

$uchetka = array('нет'=>'','да'=>'');
$uchetka[$_POST['uchetka']] = ' checked';

3. формирование вашей формы с учетом сформированных массивов:

echo "<td>Готовность учетки</td><td><select name=\"uchetka\"><option value=\"нет\"".$uchetka['нет'].">нет</option><option value=\"да\"".$uchetka['да'].">да</option></select></td>\n";

 

PS
советую использовать у select в value цифры, а не слова, для вашего случая вполне хватит 

echo '<td>Готовность учетки</td><td><select name="uchetka"><option value="0"'.$uchetka[0].'>нет</option><option value="1"$uchetka[2]>да</option></select></td>';

Обратите внимание на то какие кавычки я использовал, на мой взгляд так проще
так же на будущее вам можно будет завести массив элементов, который будет храниться в файле или в БД и формировать select через цикл в вашем случае получилось бы что-то вроде:

...
$select['uchetka'] = array('нет','да');
...
echo '<td>Готовность учетки</td><td><select name="uchetka">';
foreach($select as $key=>$val){
   echo '<option value="'.$key.'"'.$uchetka[$key].'>'.$select['uchetka'][$val].'</option>';
}
echo '</select></td>';

 

Link to comment
Share on other sites

  • 0

вот так получилось, правда думал немного по другому, но и работает.

<select name=\"komp\"><option >\"".$row['komp']."\" </option><option value=\"нет\">нет</option><option value=\"да\">да</option></select>

косые черты, так как файл php и в строке echo указать, что кавычки используются внутри кода, а не к строке echo.

3 минуты назад, Switch74 сказал:

1. запрос, который как я понимаю возвращает $row
2. формирование массивов, выбранных элементов в выпадающих списках, хранящихся в базе, например:


$uchetka = array('нет'=>'','да'=>'');
$uchetka[$_POST['uchetka']] = ' checked';

3. формирование вашей формы с учетом сформированных массивов:


echo "<td>Готовность учетки</td><td><select name=\"uchetka\"><option value=\"нет\"".$uchetka['нет'].">нет</option><option value=\"да\"".$uchetka['да'].">да</option></select></td>\n";

 

PS
советую использовать у select в value цифры, а не слова, для вашего случая вполне хватит 


echo '<td>Готовность учетки</td><td><select name="uchetka"><option value="0"'.$uchetka[0].'>нет</option><option value="1"$uchetka[2]>да</option></select></td>';

Обратите внимание на то какие кавычки я использовал, на мой взгляд так проще
так же на будущее вам можно будет завести массив элементов, который будет храниться в файле или в БД и формировать select через цикл в вашем случае получилось бы что-то вроде:


...
$select['uchetka'] = array('нет','да');
...
echo '<td>Готовность учетки</td><td><select name="uchetka">';
foreach($select as $key=>$val){
   echo '<option value="'.$key.'"'.$uchetka[$key].'>'.$select['uchetka'][$val].'</option>';
}
echo '</select></td>';

 

спасибо, попробую

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy