2013-05-03 104 views
0

我遇到了從下拉列表中捕獲值的問題。這是我的產品ID下拉列表的代碼。PHP從下拉列表中獲取值(int)類型

<select name="id" id="id" ONCHANGE="location =this.options[this.selectedIndex].value;" > 
<option value="---">---</option> 
<?php 
    foreach($products as $ID => $info){ 
    echo '<option value="new_purchase.php?id=' . $ID . '"'; 
    echo isset($id) && $id == $ID ? ' selected="selected"' : ''; 
    echo '>' . $info['id'] . '</option>'; }               
         ?> 
</select> 

這是我的代碼捕獲值。

$id = $mysqli->real_escape_string ($_POST['$("#id:selected").val()']); 

查詢運行,但它存儲0作爲產品ID值,無論我選擇什麼。

任何幫助,將不勝感激。

回答

3

你在混搭PHP和JavaScript。你只需要表單字段的名稱在$_POST陣列:

$id = $mysqli->real_escape_string($_POST['$("#id:selected").val()']); 

應該是:

$id = $mysqli->real_escape_string($_POST['id']); 

UPDATE

,改變

echo '<option value="new_purchase.php?id=' . $ID . '"'; 

echo '<option value="' . $ID . '"'; 

更新零件多鎮

,改變

ONCHANGE="location =this.options[this.selectedIndex].value;" 

ONCHANGE="location = 'new_purchase.php?id=' + this.options[this.selectedIndex].value;" 
+0

我會盡力的。 – user1754822 2013-05-03 19:26:24

+0

它仍然存儲爲0 – user1754822 2013-05-03 19:33:50

+0

當你執行'var_dump($ _ POST);''時,你會看到什麼? – 2013-05-03 19:35:26

0

既然你不提交表單,只是改變window.location您的POST數組將爲空。相反,你應該讀GET參數,而不是POST:

$id = $mysqli->real_escape_string($_GET['id']); 
+0

我試過,但仍然存儲在數據庫爲0 – user1754822 2013-05-03 19:32:45

+0

我也試試$ _REQUEST,但無效 – user1754822 2013-05-03 19:35:45

0

試試這個:

<select name="id" id="id" ONCHANGE="location ='http://site.com/new_purchase.php?id='+this.options[this.selectedIndex].value;" > 
<option value="---">---</option> 
<?php 
    foreach($products as $ID => $info){ 
    echo '<option value="'.$ID .'"'; 
    echo isset($id) && $id == $ID ? ' selected="selected"' : ''; 
    echo '>' . $info['id'] . '</option>'; }               
        ?> 
</select> 

我猜你的數據庫期待的產品ID的列的整數,對不對?所以它是數據類型的不匹配。

+0

正如我上面評論。當您選擇產品ID時,地址將更改爲abc.com/new_purchase.php?id=6並刷新頁面以填寫與id相關的信息。如果我使用你的代碼,它給了我地址abc.com/6這是404錯誤。 – user1754822 2013-05-03 19:55:23

+0

更改此事:'location = this.options [this.selectedIndex] .value;'to'location ='abc.com/new_purchase.php?id ='+ this.options [this.selectedIndex] .value;' – ROMMEL 2013-05-03 20:04:16

+0

有用。感謝你們對我的幫助。 – user1754822 2013-05-03 20:11:07