2017-04-02 17 views
1

「削除」(送信)をクリックした後:「削除するベンダーを選択するのを忘れました」というエラーが表示されるので、フォームを処理していることがわかります。htmlフォーム投稿が変数データを送信していません

フォーム自体はPHPを使用して生成されます。 HTML出力を確認すると、値になっています。しかし、それがPOSTになると、何も引き継ぎません。私はローカルホストをテストして使用していますので、既存のアクションリンク以外は何が変更できるのか分かりません。

私は別の削除フォームでまったく同じコードを持っており、正常に動作します。私は文字通り、このフォームを作成するために他のフォームをコピーし、SQL /変数名を変更しました。

form with open drop down form with closed drop down

PHPコード:

#delete vendor 
require('includes/mysqli_connect.php'); 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $errors = array(); //array to collect errors 

    //check to ensure fields are filled out 
    if (!empty($_POST['vendor'])) { 
     $vendor = trim($_POST['vendor']); 
    } 
    else { 
     $errors[] = "<p>You forgot to select a vendor to delete</p>"; 
    } 

    if (empty($errors)) { 
     //insert information into appt table 
     $query = "UPDATE vendors_t SET active = 0 WHERE vendorID = $vendor;"; 
     $result = mysqli_query($dbc, $query); 
     if($result){ 
      echo '<div class="alert alert-success" role="alert">'; 
      echo '<h2>Thank you!</h2>'; 
      echo '<p> Your request to delete vendorID ' . $customerID . 'has been completed </p></div>'; 
     } else { 
      echo "Error updating record: " . mysqli_error($dbc); 
     } 
    } else{ 
     echo '<div class="alert alert-danger" role="alert"><br>'; 
     echo '<h2>Errors Detected</h2>'; 
     echo '<p>The following errors occured:<br/>'; 
     foreach ($errors as $msg) { 
      echo "$msg<br/>\n"; 
     } 
     echo '</p><p>Please try again. </p></div>'; 
    } 

} 

HTMLコード

<div class="container standout" > 
    <div class="col-lg-12"> 
     <h2>Delete a vendor</h2> 
     <p> Please select a vendor to delete.</p> 
    </div> 
    <div class="row"> 
     <form action="index.php?pagelet=deletevendor" method="post"> 
      <div class="form-group col-md-4"> 
       <label for="vendor">Vendors</label> 
       <select name="vendor" class="form-control"> 
        <option name="vendor" selected disabled>Choose here</option> 
        <?php 
         $query = "SELECT vendorID, contactFname, contactLname, businessName FROM vendors_T WHERE active = 1;"; 
         $result = mysqli_query($dbc, $query); 

         while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {     
          echo '<option name="vendor" value="'.$row['vendorID'].'">' 
            .$row['vendorID'].' '.$row['businessName'] 
            .' '.$row['contactFname'].' '.$row['contactLname'] 
           .'</option>'; 
         }?> 
       </select> 
       <br> 
       <br> 
       <input class="btn btn-primary" id="submit" type="submit" value="Delete"> 
      </div> 
     </div> 
    </form> 
</div> 
+0

フォームのマークアップをご覧になれますか、「ベンダー」というフィールドがないことを強く疑っています。 – mayersdesign

+0

**選択した**を削除しました**選択したオプションを無効にしました>ここをクリック –

+0

オプション(

答えて

0

あなたのオプション名は、ベンダーIDの値でなければなりません(私は推測)と確かに "ベンダー"ではありません。

0

削除名= "vendor" fromオプション&選択した両方の作業を削除します。

name = "vendor"を削除した後、私は選択したバックを追加しても動作します。 ありがとうございます!

関連する問題