2012-02-06 54 views
0

我不知道從哪裏開始,所以如果已經有一個解決方案像我這樣的問題,我將不勝感激!基本上這個問題說明了一切,這裏是我想要的:當在下拉菜單中進行選擇時更新數據庫

有一個下拉菜單,簡單的下拉菜單,沒有什麼奇特的。當在該下拉菜單中進行選擇時,會運行一個php mysql查詢,其中數據庫將使用該值進行更新。我擁有所有的東西,我所需要的是能夠完全解決問題的代碼。

舉例來說,當你點擊提交表單上您通常會打字了:

if (isset($_POST['submit'])) 
{ 

//grab information and insert into db 

} 

我怎麼會做這樣的一個下拉選擇,而無需點擊提交按鈕。

+2

'onchange','AJAX' – webbiedave 2012-02-06 23:36:11

回答

1

你應該尋找這樣的事情

<form id="testform"> 
<select id="yourselect" name="yourselect" onChange="updateDb()"> 
<option value="somevalue">Please select</option> 
<option value="somevalue1">Something</option> 
</select> 
</form> 

你的JavaScript函數看起來像這樣

function updateDb() { 
// I am using jquery for ajax 
$.post("yourserverhandle.php", $("#testform").serialize()); 
} 

,這是你的 「yourserverhandle.php」 怎麼看起來像

<?php 
$query = "update yourtable set something='".mysql_escape_string($_POST["yourselect"])."' where id='something'"; 
.... mysql connect, execute 
?> 
+0

沒有工作,當我在下拉菜單中進行選擇時沒有任何反應。 – 2012-02-07 00:21:56

+0

您需要更改文件名和表單ID以適合您。有一個拼寫錯誤的單詞現在已經得到糾正。在您的PHP文件中嘗試打印帖子進行疑難解答。 只有你應該放入你的yourserverhandle.php中的行應該是print_r($ _ POST),以查看即將發生的事情。請確保路徑到PHP文件是正確的 – 2012-02-07 04:32:55

+0

這裏是jsfiddle查看http://jsfiddle.net/q8v5g/ jsfiddle只顯示它是如何工作的。您需要根據我以前的評論改變內容 – 2012-02-07 04:41:47

0
$("#DDL_ID").change(function(){ 

$.ajax({ 
url:'/some.php', 
type:'POST', 
data:{submit:$(this).val()}, 
success:function(data){ 
//do something here if the server return anything 
}, 
error:function(){ 
console.log("something bad happened"); 
} 

}); 

}); 

在PHP端

if (isset($_POST['submit'])) 
{ 

//grab information and insert into db 

} 

P.S.總是將輸入消毒看到mysql_real_escape_string

3

正如在評論中所說,你聽選擇框的onchange事件,並提交表單或使用AJAX。這不是我的觀點。

從可用性POV我推薦你重新評估這個主張,如果它真的導致數據庫更新:曾經使用鼠標滾輪滾動,而意外的重點放在選擇框?大獎!你只是改變你的數據庫設置而不知道它。

因此,使用onchange一個選擇框揭開序幕的東西,是立即可見恕我直言,是一個很好的事情 - 你知道,當你觸發它。更改數據庫設置沒有反饋,而不是選擇框更改值是恕我直言,這是一件壞事。或者等待發生的事故。

+0

我已經設置了一切措施來觸發,逃避,完成所有爵士樂。我只需要在下拉選擇時提交表單。我嘗試了以下兩種方法,但都沒有工作。 – 2012-02-07 00:53:15

相關問題