2012-05-13 65 views
0

我有一個表單,它有一個國家下拉列表。使用onChange,ajax,php和Mysql提交表單.Dropdown列表的值不會發送到php提交頁面

如果用戶選擇其中一個國家(onchange), 會顯示城市的新下拉列表 僅顯示該特定國家/地區的城市。

<select name = \"countries\" id=\"ListOfCountries\" onchange=\"showCities(this.value)\"> 

我已經通過使用php,mysql和ajax實現了。

教程我研究 ,隨後在下面的鏈接:

http://www.w3schools.com/php/php_ajax_database.asp

下拉列表城市會自動顯示在網頁上 無需再次加載頁面。

當城市的對話框出現時,如果我這樣做 按Ctrl-U中才能看到頁面的源代碼, 爲的HTML代碼下拉城市的名單沒有在源代碼頁。

我的問題是,當我提交表單, 的城市下拉列表 的價值是不會發送submit.php文件

的index.php

<form action="submit.php" name="my_form" method="post"> 

submit.php

echo $_POST['cities']; 

$ _ POST [ '城市'];是空白。

這意味着在提交頁面沒有值 爲城市的下拉列表發送。

那我該怎麼才能解決這個問題呢?

謝謝,提前

+0

如果使用Ajax爲「城市」添加「select」元素,它會動態添加到頁面中。因此你不會在源代碼中看到它,只能在調試器中看到它。 [W3Fools](http://w3fools.com)。 – VisioN

回答

1

好像你沒有正確更新DOM,所以cities參數不是當您提交表單時可用。 如果您使用jQuery,請使用jQuery.after()或任何類似的函數來更新DOM。如果沒有,您將不得不使用select創建節點並將其添加到表單中。

+0

我正在按照我已經寫在我的第一篇文章中的url鏈接進行教程。所以,我沒有使用jquery,而是一個調用php文件的javascript函數,從數據庫中選擇城市,並通過使用「echo」將城市的下拉列表打印到瀏覽器中 – programmer

+0

當你說我必須「添加節點「,這是什麼意思? – programmer

+1

「回聲」是問題。它會更新你的屏幕,你會看到選擇,但DOM沒有更新,所以選擇不存在。 我會找到一個例子併發布。 – Ander2

1

添加客戶端和服務器端驗證程序。例如,在客戶端如果沒有城市被選中禁用提交按鈕。而在服務器端如果isset($_POST['cities'])是假的,那麼不要執行任何查詢簡單地重定向用戶到同一頁面,並顯示錯誤消息「請選擇城市」

+0

在我的測試中,用戶總是選擇其中一個城市。我的問題是($ _POST ['cities'])總是空白,沒有值。我應該怎麼做?謝謝 – programmer

+0

此外,我使用回聲爲了向瀏覽器顯示城市的下拉列表。似乎

沒有意識到一個新的輸入/下拉列表創建,這就是爲什麼在提交頁面,$城市是空白。 – programmer

+1

該教程看起來過時,過時,試試這個,而不是http://www.erichynds.com/jquery/jquery-related-dependent-selects-plugin/ –