2017-02-16 80 views
1

我正在學習PHP的過程中,並想知道是否有人會友善地幫我一下,我堅持。選擇與下拉菜單中顯示的值不同的值。 (PHP和MySQL)

在下面的表格中,它將根據用戶ID拉出一個用戶地址列表,並通過其'Address_Name'字段顯示它們。

但是,當他們選擇說'家庭住址'時,我不想拉取那個'Address_Name'的值,但我想拉'Address_ID'的行值。

任何人都可以幫助我理解我該如何做到這一點,牢記'Address_Name'不會是唯一的。

<?php 

$add=mysql_query("SELECT * FROM Address_Book WHERE User_ID = '$id'"); 

while ($row = mysql_fetch_array($add)){ 

?> 

<form name="form1" onsubmit="return validate()"> 
<input type="hidden" name="command" /> 
<div align="center"> 
<h1 align="center">Confirm Order</h1> 
<table border="0" cellpadding="2px"> 
<tr><td>Order Total:</td><td><?php echo $currency ?><?php echo get_order_total()?></td></tr> 
<tr><td>Account_Number</td><td><input type="text" name="accountnumber" /></td></tr> 
<tr><td>Delivery Address</td><td><select name="owner"> 
<option name="address" id="address" value="Address_Name"><?php echo $row['Address_Name']; ?></option> 
</td></tr> 
<tr></tr> 
<tr><td>&nbsp;</td><td><input type="submit" value="Confirm Order" /></td>  
</tr> 
</table>  
</div> 
</form> 

<?php 

} 
?> 
+2

停止你正在做什麼了。您正在使用已棄用,未維護且不安全的數據庫函數。我建議切換使用PDO,但mysqli也是一種選擇。兩者已有十多年的歷史。 http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – miken32

+2

只有一個選項的下拉菜單有什麼意義? – Barmar

+0

看來這全是錯的。您正在爲每個用戶的地址創建一個單獨的表單。它應該是一種形式,並且每個地址應該是下拉菜單中的一個選項。循環應該圍繞添加「

回答

-1

試試這個

 <?php 

    $add=mysql_query("SELECT * FROM Address_Book WHERE User_ID = '$id'"); 



    <form name="form1" onsubmit="return validate()"> 
    <input type="hidden" name="command" /> 
    <div align="center"> 
    <h1 align="center">Confirm Order</h1> 
    <table border="0" cellpadding="2px"> 
    <tr><td>Order Total:</td><td><?php echo $currency ?><?php echo get_order_total()?></td></tr> 
    <tr><td>Account_Number</td><td><input type="text" name="accountnumber" /></td></tr> 
    <tr><td>Delivery Address</td><td><select name="owner"> 
    while ($row = mysql_fetch_array($add)){ 

    ?> 
    <option name="address" id="address" value="<?php echo $row['Address_ID']; ?>"> 
<?php echo $row['Address_Name']; ?> 
</option> 

    <?php 

    } 
    ?> 
    </td></tr> 
    <tr></tr> 
    <tr><td>&nbsp;</td><td><input type="submit" value="Confirm Order" /></td>  
    </tr> 
    </table>  
    </div> 
    </form> 
+0

嗨真棒傢伙,謝謝。我有它的工作,但會尋求增強PDO或mysqli。我正在學習,但慢慢到達那裏。再次感謝您 – Trotterwatch

0

正如已經說過,你可能會進一步提高你的代碼,並使用PDO或mysqli將其固定,但短期回答你的問題是把ADDRESS_ID在值屬性:

<option name="address" id="address" value="<?php echo $row['Address_ID']; ?>"><?php echo $row['Address_Name']; ?></option> 
-1

Miken32表示它已經存在,但MySQL已被棄用且不安全。您應該使用PDO,使數據庫調用

我已經發布代碼的帶有註釋的更新版本和推理

<?php 
$database->query("SELECT * FROM Address_Book WHERE User_ID = :User_ID"); // Selecting from the database - Kind of like prepare 
$database->bind(':User_ID', $UserID); // Binding values to prevent SQL Injection 
$Addresses = $database->resultset(); // Returns and array of all the different rows 
?> 

<form name="form1" onsubmit="return validate()"> 
    <input type="hidden" name="command" /> 
    <div align="center"> 
     <h1 align="center">Confirm Order</h1> 
     <table border="0" cellpadding="2px"> 
      <tr> 
       <td>Order Total:</td> 
       <td><?php echo $currency ?> 
        <?php echo get_order_total()?> 
       </td> 
      </tr> 
      <tr> 
       <td>Account_Number</td> 
       <td> 
        <input type="text" name="accountnumber" /> 
       </td> 
      </tr> 
      <tr> 
       <td>Delivery Address</td> 
       <td> 
        <select name="owner"> 

         <?php 
         foreach($Addresses as $Address) // Here for each Address in the Addresses array we echo an option with the value as the Address_ID and DisplayName as Address_Name 
         { 
          echo '<option name="address" id="address" value="'.$Address["Address_ID"].'>'.$Address['Address_Name'].'</option>'; 
         } 
         ?> 

        </select> <!-- You were btw missing an ending </select> --> 
       </td> 
      </tr> 
      <tr></tr> 
      <tr> 
       <td>&nbsp;</td> 
       <td> 
        <input type="submit" value="Confirm Order" /> 
       </td> 
      </tr> 
     </table> 
    </div> 
</form> 
+0

這不是PDO。不知道它是什麼,但絕對不是PDO。 – miken32

+0

@ miken32它是PDO我使用它在我的網站atm,我只是有一個包裝。 –

+0

那麼這對別人沒有太大的幫助,是嗎? – miken32

相關問題