2010-11-12 59 views
0

假設有一個網站具有分層的選項/選擇下拉列表。當用戶從下拉框A中進行選擇時,它們的選擇值將發佈到服務器,並且會填充下拉框B.下拉式B以相同的方式填充下拉式C.選擇下拉式C時,數據會顯示爲特定於其在C中的選擇。先前的選擇一直保留下來,除非它們改變了更高的值,在這種情況下,所有值都會重置爲低於此值。在HTML中,它看起來像這樣:從選項下載數據/選擇網絡表單

Drop-Down A 
<select class="submitOnChange"> 
<option value="a1">A</option> 
<option value="a2" SELECTED>B</option> 
<option value="a3">C</option> 
</select> 
Drop-Down B 
<select class="submitOnChange"> 
<option value="b1" SELECTED>B-A</option> 
<option value="b2">B-B</option> 
<option value="b3">B-C</option> 
</select> 
Drop-Down C 
<select class="submitOnChange"> 
<option value="c1">B-A-A</option> 
<option value="c2">B-A-B</option> 
<option value="c3" SELECTED>B-A-C</option> 
</select> 
[Data for B-A-C is shown here because they clicked that] 

該腳本專門爲每次選擇更改時向所有選定的選項發送一個POST。

我想從這個Web應用程序下載所有的數據;也就是說我希望看到與所有可能的下拉C值相關的數據。什麼是最好的方式來做到這一點?我發現wget設置爲通過鏈接遞歸工作,但看起來不像這樣。我會對這樣做最簡單快速的方式感興趣。我知道PHP,所以我可以用cURL寫一個腳本,但是如果有一個更簡單的解決方案,比如一個程序,那麼它已經完成了(wget?),我會感興趣的。任何提示或建議歡迎。

回答

0

您可以使用CURL來做到這一點。

您可以從命令行中使用它:

curl -d "name=Rafael%20Sagula&phone=3320780"     http://www.where.com/guest.cgi 

來源是捲曲手冊:http://curl.haxx.se/docs/manual.html

+0

結束了使用捲曲生病數它 – babonk 2010-11-17 04:59:13

0

您可以將信息構建爲鏈接列表,您擁有數據的位置以及父主鍵。這樣你就可以一次下載所有的數據,例如JSON。

我們所做的是設置三個Web方法,第一個產品都設置一個選項,第二和第三服用一到兩個參數,所有三個提供JSON到客戶端,使用jQuery消耗和Ajax調用:

var responseObject = {}; 
responseObject.parameterA = $('#selectA option:selected').val(); 
responseObject.parameterB = $('#selectB option:selected').val(); 
responseObject.parameterC = $('#selectC option:selected').val(); 
var jsonResult = JSON.stringify(responseObject); 

$.ajax({ 
    type: "POST", 
    url: "http://whereever.com", 
    data: jsonResult, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (j) { 
     var options = ''; 
     for (var i = 0; i < j.length; i++) { 
     options += '<option value="' + j[i].value + '">' + j[i].text + '</option>'; 
} 

在這種情況下,成功函數會填充下一個選擇,但您可以根據需要重新格式化數據。 J包含數據。

+0

以星博士,是這個答案重現上述形式或下載呢?我試圖下載它 – babonk 2010-11-12 04:22:32

0

babonk,

我認爲你不能在數據發佈到與您的服務器html文件,因爲您在選擇部分中錯過了「名稱」屬性,它們應如下所示:

Drop-Down A 
<select class="submitOnChange" name="selectA"> 
<option value="a1">A</option> 
<option value="a2" SELECTED>B</option> 
<option value="a3">C</option> 
</select> 
Drop-Down B 
<select class="submitOnChange" name="selectB"> 
<option value="b1" SELECTED>B-A</option> 
<option value="b2">B-B</option> 
<option value="b3">B-C</option> 
</select> 
Drop-Down C 
<select class="submitOnChange" name="selectA"> 
<option value="c1">B-A-A</option> 
<option value="c2">B-A-B</option> 
<option value="c3" SELECTED>B-A-C</option> 
</select> 

然後你會出現以下的wget命令列表中的內容:

wget -O yourhtml.htm --post-data "selectA=a1&selectB=b1&selectC=c1" http://yoururl.com/ 
wget -O yourhtml.htm --post-data "selectA=a1&selectB=b1&selectC=c2" http://yoururl.com/ 
wget -O yourhtml.htm --post-data "selectA=a1&selectB=b1&selectC=c3" http://yoururl.com/ 
wget -O yourhtml.htm --post-data "selectA=a1&selectB=b2&selectC=c1" http://yoururl.com/ 
wget -O yourhtml.htm --post-data "selectA=a1&selectB=b2&selectC=c2" http://yoururl.com/ 
wget -O yourhtml.htm --post-data "selectA=a1&selectB=b2&selectC=c3" http://yoururl.com/ 
wget -O yourhtml.htm --post-data "selectA=a1&selectB=b3&selectC=c1" http://yoururl.com/ 
wget -O yourhtml.htm --post-data "selectA=a1&selectB=b3&selectC=c2" http://yoururl.com/ 
wget -O yourhtml.htm --post-data "selectA=a1&selectB=b3&selectC=c3" http://yoururl.com/ 
...... 
wget -O yourhtml.htm --post-data "selectA=a3&selectB=b3&selectC=c3" http://yoururl.com/