2016-03-21 1 views
0

Я просто изучаю Mysql/PHP, и у меня есть некоторые проблемы с моим выпадающим списком.Элементы списка Dropdownlist исчезают, когда я нажимаю submit, когда значение уже находится в DB

Проблема: Когда я нахожусь в Sumbit, будет запущен запрос и проверьте, имеется ли вставленный номер. Когда вставленный номер доступен, он вставляет некоторые значения в БД. Иначе, когда номер уже сделан, он покажет ошибку. Когда это произойдет, мой dropdownlist внезапно пуст, см. Снимок экрана ниже!

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

Надеюсь, кто-то может помочь!

Код:

<?php 
 
error_reporting(E_ALL); 
 
ini_set('display_errors', 1); 
 
session_start(); 
 
include("/includes/connect.php"); 
 
if(isset($_SESSION['logged_in'])) { 
 

 
\t \t $sql="SELECT id,model FROM `ipad-model`"; 
 
\t \t $stmt = $db->prepare($sql); 
 
\t \t $stmt->execute(); 
 
\t \t $result = $stmt->fetchAll(); 
 
\t 
 
\t if(isset($_POST['btnAdd'])) { 
 
\t \t $errMsg = ''; 
 
\t \t $nr=$_POST['nr']; 
 
\t \t $sql2="SELECT * FROM ipad WHERE nr=$nr"; 
 
\t \t $stmt = $db->prepare($sql2); 
 
\t \t $stmt->execute(); 
 
\t \t $result = $stmt->fetchAll(); 
 
\t \t \t if($result == 0) { 
 
\t \t \t \t $nr=$_POST['nr']; 
 
\t \t \t \t $model=$_POST['model']; 
 
\t \t \t \t $serienummer=$_POST['serienummer']; 
 
\t \t \t \t $capaciteit=$_POST['capaciteit']; 
 
\t \t \t \t $uptodate=$_POST['uptodate']; 
 
\t \t \t \t $sql="INSERT INTO ipads(uitgeleend,nr,model,serienummer,capaciteit,uptodate) VALUES ('Nee','$nr','$model','$serienummer','$capaciteit', '$uptodate')"; 
 
\t \t \t \t $result=$db->query($sql); 
 
\t \t \t \t header("location:index.php"); 
 
\t \t \t } else { 
 
\t \t \t \t $errMsg = 'Nummer is al in gebruik!'; 
 
\t \t \t } 
 
\t } 
 
\t include("/includes/get_header.php"); 
 
?> 
 

 
      <h1 class="page-title">Nieuwe iPad toevoegen</h1> 
 
      <ul class="breadcrumb"> 
 
      <li><a href="index.php">Home</a> </li> 
 
      <li class="active">Nieuwe iPad</li> 
 
     </ul> 
 
    </div> 
 

 
<form id="gegevensForm1" class="col-xs-4" form method="POST" action="ipad-toevoegen.php"> 
 
    <div class="form-group"> 
 
     <label>Nr</label> 
 
     <input type="text" class="form-control" name="nr" /> 
 
\t \t <?php 
 
\t \t \t if(isset($errMsg)){ 
 
\t \t \t \t echo '<div style="color:#FF0000;text-align:center;font-size:12px;">'.$errMsg.'</div>'; 
 
\t \t \t } 
 
\t \t ?> 
 
    </div> 
 

 
    <div class="form-group"> 
 
     <label>Model</label> 
 
\t \t \t <select class="form-control" name="model"> 
 
\t \t \t \t <?php foreach($result as $row): ?> 
 
\t \t \t \t <option value="<?= $row['model']; ?>"><?= $row['model']; ?></option> 
 
\t \t \t \t <?php endforeach; ?> 
 
\t \t \t </select> 
 
\t \t <p class="text-right"><a href="ipad-model.php">Bewerken</a></p> 
 
    </div> 
 

 
    <div class="form-group"> 
 
     <label>Serienummer</label> 
 
\t \t \t <input type="text" class="form-control" name="serienummer" /> 
 
    </div> 
 

 
    <div class="form-group"> 
 
     <label>Capaciteit</label> 
 
\t \t <select class="form-control" name="capaciteit"> 
 
\t \t \t <option value="16 GB">16 GB</option> 
 
\t \t \t <option value="32 GB">32 GB</option> 
 
\t \t \t <option value="64 GB">64 GB</option> 
 
\t \t \t <option value="128 GB">128 GB</option> 
 
\t \t </select> 
 
    </div> 
 
    
 
    <div class="form-group"> 
 
     <label>Up-To-Date</label> 
 
\t \t <select class="form-control" name="uptodate"> 
 
\t \t \t <option value="Ja">Ja</option> 
 
\t \t \t <option value="Nee">Nee</option> 
 
\t \t </select> 
 
    </div> 
 

 
    <button class="btn btn-primary pull-right" name="btnAdd" type="submit"><i class="fa fa-save"></i> Opslaan</button> 
 
    <a href="index.php"><input type="button" name="btnCancel" value="Annuleer" class="btn btn-primary pull-left"></a> 
 
    
 
    <?php 
 
\t \t include('../includes/get_footer.php'); 
 
\t ?> 
 
    
 
</form> 
 

 
<?php 
 
} else header("location: index.php") 
 
?>

Скриншоты:

Перед представить & ErrorMsg: enter image description here

После Отправить & ErrorMsg: enter image description here

+1

Вы должны написать код вместо скриншотов, вам нужно говорить больше о том, что код, который вы используете – techblu3

+0

Это возможно дублирование http://stackoverflow.com/questions/2246227/keep-values- selected-after-form-submission –

ответ

1

Это потому, что ваши $ результат переменной перезаписывается.

Вы должны использовать разные имена для разных наборов результатов.

Так, например, я бы что-то вроде этого:

$sql="SELECT id,model FROM `ipad-model`"; 
$stmt = $db->prepare($sql); 
$stmt->execute(); 
$ipadModels = $stmt->fetchAll(); 

И ниже, в "виде" части, где вы оказываете ниспадающее меню:

<?php foreach($ipadModels as $ipadModel): ?> 
    <option value="<?= $ipadModel['id']; ?>"><?= $ipadModel['model']; ?></option> 
<?php endforeach; ?> 

Надеется, что это помогает!

Radu

+1

Oo, не знал, что .. Ваше решение сработало! Благодаря!!! – Khiem

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