亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP/MYSQLI 如何從表單內的 while 循環返回變量以在該表單的操作/方法中的 $_GET

PHP/MYSQLI 如何從表單內的 while 循環返回變量以在該表單的操作/方法中的 $_GET

PHP
倚天杖 2023-04-21 16:48:21
我有一個 html 表單,它使用 PHP while 循環從 MYSQLi 數據庫填充選擇菜單。下面的代碼;$query = "SELECT on_programme, last_name, first_name, middle_name, id FROM constant_client WHERE on_programme=1 ";$result = mysqli_query($conn, $query);echo '<p><label for="current_clients">Select Client by name: </label>        <select id="current_clients" name="current_clients">        <option> -- Select Client -- </option>';        while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {          echo '<option>'.ucwords($row['last_name']).', '.ucwords($row['first_name']).' '.ucwords($row['middle_name']).'</option>';        }echo '</select>'; 以上工作,表格填充了所需的客戶記錄。但是,然后我希望使用此數據鏈接到我嘗試使用的單個客戶端頁面echo '&emsp;<a href="selected_client.php?id='.$row['id'].'" onClick="this.form.submit()">Go!</a>';這不起作用,所以我嘗試將表單操作設置為action="selected_client.php?id='.$row['id'].'"方法為“GET”,也沒有用。正如您在查詢中看到的那樣,我也從表中選擇了“id”,因此稍后我可以調用數組的那部分,我只是不是特別需要或不想回顯它。使用表單操作方法時,未設置 $row['id'] 變量,使用 onClick 方法時,出現“嘗試訪問 null 類型值的數組偏移量”錯誤。我想象需要在表單操作發生之前設置變量,但我想不出在不移動 while 循環或至少從中返回值的情況下如何做到這一點。是否可以在提交時而不是在表單頂部調用表單方法和操作?那會有什么不同嗎?編輯; 根據要求,我嘗試對表單使用隱藏方法echo '<input type="submit" name="submit" value="Go!"><input type="hidden" name="id" value="'.$row['id'].'">';其中仍然返回空值類型的錯誤。編輯 #2 - 所有代碼內聯。$query = "SELECT on_programme, last_name, first_name, middle_name, id FROM constant_client WHERE on_programme=1 ";$result = mysqli_query($conn, $query);echo  '<form action="selected_client.php" method="get">    <fieldset>';echo '<p><label for="current_clients">Select Client by name: </label>        <select id="current_clients" name="current_clients">        <option> -- Select Client -- </option>';        while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {          echo '<option>'.ucwords($row['last_name']).', '.ucwords($row['first_name']).' '.ucwords($row['middle_name']).'</option>';        }echo '</select>';echo '<input type="submit" name="submit" value="Go!"><input type="hidden" name="id" value="'.$row['id'].'">';echo '</fieldset></form>';
查看完整描述

1 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

添加 onChange 事件并將所選值傳遞給某個函數,在該函數中使用該所選值設置隱藏字段。現在您可以提交表單并可以接收您選擇的值。下面是解決方案。


$query = "SELECT on_programme, last_name, first_name, middle_name, id FROM constant_client WHERE on_programme=1";

$result = mysqli_query($conn, $query);

echo  '<form action="selected_client.php" method="get">

    <fieldset>';


echo '<p><label for="current_clients">Select Client by name: </label>

        <select id="current_clients" name="current_clients" onChange="setId(this.value);">

        <option value=""> -- Select Client -- </option>';


        while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {

          echo '<option value="'.$row['id'].'">'.ucwords($row['last_name']).', '.ucwords($row['first_name']).' '.ucwords($row['middle_name']).'</option>';

        }

echo '</select>';

echo '<input type="submit" name="submit" value="Go!">

<input type="hidden" name="id" id="hidden_field" value="">';


echo '</fieldset></form>';

添加此腳本以在隱藏字段中設置值。


<script>

function setId(rowValue){

   document.getElementById("hidden_field").value=rowValue;

}

</script>


查看完整回答
反對 回復 2023-04-21
  • 1 回答
  • 0 關注
  • 134 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號