2016-12-26 6 views
2

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

<form> 
    <div class="modal-body"> 
    <input type="hidden" id="<?php echo $row['P_id'] ?>" value="<?php echo $row['P_id'] ?>"> 

    <!-- Select parking type --> 

    <div class="form-group"> 
     <label for="type">Parking Type</label> 

     <?php $connect=m ysqli_connect("localhost", "root", "root", "pms"); $dbQuery="SELECT * FROM parking_type" ; $dbResult=m ysqli_query($connect,$dbQuery); echo '<select id="typ-'.$row[ 'P_id']. '">'; while($rw=m ysqli_fetch_array($dbResult)) { echo 
     '<option value="'.$rw[0]. '" > '.$rw[1]. ' </option>'; } echo "</select>"; ?> 
    </div> 

    <!-- Edit parking code --> 

    <div class="form-group"> 
     <label for="pc">Parking Code</label> 
     <input type="text" class="form-control" id="pno-<?php echo $row['P_id'] ?>" value="<?php echo $row['P_code'] ?>"> 
    </div> 

    </div> 
    <div class="modal-footer"> 
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
    <button type="submit" onclick="updateData(<?php echo $row['P_id'] ?>)" class="btn btn-primary">Update</button> 
    </div> 
</form> 
+0

Эта точка с запятой ';' после того, как ваш 'while' обманывает вас. – Tolios

+0

где ваше имя атрибута для элемента select –

+0

Он выбирает данные из базы данных, но должен показывать значение, которое я хочу обновить. – raiya

ответ

0

ок, я изменил свой код, пожалуйста, смотрите здесь и попробовать это:

ваш код формы:

<form id="jsForm" action="pserver.php" type="POST"> 
    <div class="modal-body"> 
    <input type="hidden" name="P_id" value="<?php echo $row['P_id']; ?>"> 
    <input type="hidden" name="action" value="edit"> 
    <!-- Select parking type --> 

    <div class="form-group"> 
     <label for="<?php echo 'typ-'.$row[ 'P_id']; ?>">Parking Type</label> 
     <?php 
     $connect = mysqli_connect("localhost", "root", "root", "pms"); 
     $dbQuery = "SELECT * FROM parking_type" ; 
     $dbResult = mysqli_query($connect,$dbQuery); 
     echo '<select name="typ-'.$row[ 'P_id']. '">'; 
     while($rw = msqli_fetch_array($dbResult)) { 
     echo '<option value="'.$rw[0]. '" > '.$rw[1]. ' </option>'; 
     } 
     echo "</select>";  

     ?> 
    </div> 

    <!-- Edit parking code --> 
    <div class="form-group"> 
     <label for="pno-<?php echo $row['P_id']; ?>">Parking Code</label> 
     <input type="text" class="form-control" name="pno-<?php echo $row['P_id']; ?>" value="<?php echo $row['P_code']; ?>"> 
    </div> 

    </div> 
    <div class="modal-footer"> 
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
    <button type="submit" class="btn btn-primary">Update</button> 
    </div> 
</form> 

<script> 

//hang on event of form with id=myform 
    $("form#jsForm").on('submit', function(e) { 

     //prevent Default functionality 
     e.preventDefault(); 

     //get the url of the form 
     var url = $(this).attr('action'); 

     //get form values 
     var values = $(this).serialize(); 

     //do your own request an handle the results 
     $.ajax({ 
       url: 'pserver.php', // or set "url" var, if form action defined 
       type: 'POST', 
       //dataType: 'json', 
       data: values, 
       success: function(resp) { 
        //alert(resp); 
        viewData(); 
       } 
     }); 

    }); 

</script> 

часть кода PHP:

<?php 
if(isset($_POST['action'], $_POST['P_id']) && $_POST['action'] == "edit" && !empty($_POST['P_id'])) { 

$P_id = $_POST['P_id']; 
$type = isset($_POST["typ-$P_id"]) ? $_POST["typ-$P_id"] : false; 
$p_no = isset($_POST["pno-$P_id"]) ? $_POST["pno-$P_id"] : false; 

    if($type && $p_no) { 
    $stmt = $db->prepare("update parking_details set t_id=?, P_code=? where P_id=?"); 
    $stmt->bindParam(1,$type); // you can add pdo validation here (read more http://php.net/manual/en/pdostatement.bindparam.php) 
    $stmt->bindParam(2,$p_no); // and here 
    $stmt->bindParam(3,$P_id); // and here 
    $stmt->execute(); 
} 
} 
?> 
+0

спасибо, что он отлично подходит, и он извлекает все остальные данные полей, но остается значением выпадающего списка, который всегда показывает первый. я должен показать значение этой записи из базы данных – raiya

+0

ok, разместите свой html-код для лучшего понимания. – Eugen

+0

извините, но где я могу написать свой полный код? в комментарии ?? – raiya

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