php
  • html
  • sql
  • select
  • mysqli
  • 2012-05-22 64 views 1 likes 
    1

    我有一個選擇框,用戶可以從數據庫中選擇預先存在的字段的表單:傳遞從HTML表單選擇框多個值用PHP的SQL語句

    <form action='' method='POST' autocomplete='off' enctype="multipart/form-data"> 
        <p><strong>Title and Description:</strong></p> 
        <select name='uidtitle' class='chosen-select'> 
        <option value="0" ></option> 
        <?php 
         $result = $mysqli->query("SELECT uid, title, description FROM tblFacilityHrs") or die($mysqli->error); 
         while ($row = $result->fetch_array(MYSQLI_ASSOC)){ 
         echo "<option value=\"1\">" . $row['title'] ." - " . $row['description'] . "</option>"; 
         $uid = $row['uid']; 
         $title = $row['title']; 
         $desc = $row['description']; 
         } 
        ?> 
        </select> 
    ... 
    

    如何發送所有三個這些值(單獨)到我的SQL回發?

    if (isset($_POST['submitted'])) { 
        //Get params for prepared statements 
        $startDatec= date("Y-m-d H:i:s", strtotime($_POST['startEventDate'])); 
        $endDatec= date("Y-m-d H:i:s", strtotime($_POST['endEventDate'])); 
        $startTimec=$_POST['startTime']; 
        $endTimec=$_POST['endTime']; 
        $recurc=$_POST['recurrence']; 
        $finalc= date("Y-m-d H:i:s", strtotime($_POST['finalDate'])); 
        ... 
    
    +0

    您是否指'uid','title'和'description'? –

    +0

    是的,那三個。 –

    回答

    1

    我不知道爲什麼你需要發回所有三個值。數據庫密鑰存在的原因是能夠識別只給出一個字段的記錄中的所有字段,在這種情況下,我假設uid。單獨傳遞該字段將允許您在執行您打算執行的操作之前選擇回發中的其他字段。

    但是,它可以使用隱藏的表單域,雖然我不提倡這種方法。

    <select name='uidtitle' class='chosen-select'> 
        <option value="0" ></option> 
        <?php 
         $result = $mysqli->query("SELECT uid, title, description FROM tblFacilityHrs") or die($mysqli->error); 
         $cacheArray = array(); // Used to store the information to be used below 
         while ($row = $result->fetch_array(MYSQLI_ASSOC)){ 
         echo "<option value=\"" . $row['uid'] . "\">" . $row['title'] ." - " . $row['description'] . "</option>"; 
          $cacheArray[] = $row; 
         } 
        ?> 
        </select> 
    
    <?php 
    
        foreach($cacheArray as $k => $v) { 
         echo '<input type = "hidden" name = "title-' . $v['uid'] . '" value = "' . $v['title'] . '">'; 
         echo '<input type = "hidden" name = "description' . $v['uid'] . '" value = "' . $v['description'] . '">'; 
        } 
    
    ?> 
    

    您的tblFacilityHrs表中的所有記錄都將存在隱藏表單域。通過在名稱後面追加uid來區分名稱。您可以通過以下方式確定您在回發中對哪些字段感興趣:

    $_POST['title-'.$_POST['uidtitle']] 
    $_POST['description-'.$_POST['uidtitle']] 
    
    +0

    你是對的,我沒有想到這一點。我想我只需要UID。 –

    +1

    很高興能幫到你! –

    相關問題