2013-09-23 44 views
0

我有一個HTML選擇從SQL查詢創建下拉列表。如何將所選項目從HTML選擇中保存到PHP變量中?

我想知道如何將用戶選擇的項目保存到可以傳遞給其他PHP頁面的PHP變量中。

謝謝。

<tr> 
    <td>DRM Staff List</td><span class="required">*</span>:<br /> 
    <td> 
     <select name="unit"> 
      <?php 
       $conn = oci_connect("username", "password", "url"); 
       $sql = 'select distinct "DRM Primary" from GIS_DATA_LOAD where "DRM Primary" is not null order by "DRM Primary" asc' ; 
       $stid = oci_parse($conn, $sql); 
       $success = oci_execute($stid); 
       echo $success; 
       while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS+OCI_ASSOC)) 
       { 
        echo "<option value=\"unit1\">" . $row['DRM Primary'] . "</option>"; 
       } 
      ?> 
     </select> 
    </td> 
</tr> 
+0

'標準'形式的方法? – 2013-09-23 21:05:46

+1

提交表單後?如果可能的話,之前可以使用 –

+0

回答

0

將您的代碼添加到表單標記中,並使用javascipt作爲onselect進行表單提交操作($ _POST或$ _GET)。 由於代碼位於客戶端,所以您必須確保將其提交給服務器以將所選選項保存在php變量中。

<tr> 
    <td>DRM Staff List</td><span class="required">*</span>:<br /> 
    <td> 
     <form action="" method="POST" name="myform"> 
     <select name="unit" onchange="this.form.submit()> 
      <?php 
       $conn = oci_connect("username", "password", "url"); 
       $sql = 'select distinct "DRM Primary" from GIS_DATA_LOAD where "DRM Primary" is not null order by "DRM Primary" asc' ; 
       $stid = oci_parse($conn, $sql); 
       $success = oci_execute($stid); 
       echo $success; 
       while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS+OCI_ASSOC)) 
       { 
        echo "<option value=\"unit1\">" . $row['DRM Primary'] . "</option>"; 
       } 
      ?> 
     </select> 
     </form> 
    </td> 
</tr> 

//現在提交的表單保存爲值在PHP中,我們將使用下面的代碼

<?php 
if(isset($_POST['myform'])) 
$selected_unit=$_POST['unit']; 
?> 

你也可以使用ONSELECT()功能......不知道這一點.. 希望它有幫助..感謝:)

+0

將變量存儲在Session變量中,以方便在頁面之間進行導航。 – devutkarsh

0

您可能想要爲每個選項設置一個唯一值,其他不知道實際選擇了哪個選項。

0

當您提交表單時,PHP將在內部生成一個super global array。這一點,因爲它的聲音,是全球性的,並且可以通過變量的腳本執行中的任何地方訪問:

  • $_POST
  • $_GET

所以提交表單後,如果是HTTP post要求那麼你應該找到你的價值是這樣的:

echo $_POST['unit']; // Unit 1 etc 

還有其他的「超級全球」。 See the documentation for more information.

+0

那麼,沒有提交表單就沒有辦法做到這一點? – UndefinedReference

0

它不可能從客戶端設置一個變量。 使用AJAX提交表單可能有所幫助。它不需要重新加載頁面。

相關問題