2013-06-18 37 views
0

我想有一個選擇列表,當選擇一個選項時運行php數據庫查詢。我的代碼:如何從選擇列表中選擇一個選項時運行php?

<select> 
    <option value="available">Available</option> 
    <option value="sold">Sold</option> 
</select> 
<input type="submit" name="change status"> 

說,當用戶選擇 '賣' 我想運行:

<?php 
    db_query("UPDATE {product_stock} SET stock='0' WHERE nid='$value'"); 
?> 

我已經試過

<option value="sold" <?php db_query("UPDATE {product_stock} SET stock='0' WHERE nid='$value'"); ?> >Sold</option> 

,但似乎並不上班。 我知道我可以使用ajax不知何故,我不知道我是否應該使用

<form method="GET">...</form> 

,但我真的不熟悉它。 任何想法如何做到這一點? 謝謝

回答

2

您必須使用javascript!否則,您必須在表單提交後更新您的數據庫。

一種可能的方法JavaScript庫jQuery的是:

$("select").change(function() { 
    $.post("/your/url", {option: $(this).val()}, function(return) { 
     //echo result if necessary 
    } 
}); 

在服務器端,您應該檢查$_POST['option']和更新數據庫,你

ESCAPED

變量「選項」的內容。

+2

這不僅僅是JavaScript,而是使用jQuery庫。你應該把它指向某個地方。 – Alvaro

+0

編輯我的答案。 Thx的提示。 –

+0

我是新來jquery我不明白在哪裏把HTML的選擇選項,以及在哪裏寫我的數據庫查詢。你能寫一個更詳細的答案,幷包括HTML和PHP。另外你是什麼意思ESCAPED? – LTech

0

當組合框發生變化時,您必須使用jQuery或純JavaScript發送AJAX調用。 根據新的值,您可以發送各種參數並調用您的PHP腳本。

但是,像你嘗試過的HTML和PHP之間的交互將永遠不會工作。當你在瀏覽器中看到組合框的時候,你的PHP命令已經被執行了。

0

我的網站建立在drupal上,所以我創建了一個自定義模塊並使用了hook_form_alter,這樣我就可以使用PHP並且不需要在ajax中編寫代碼。

相關問題