Php 从选项/选择web表单下载数据

Php 从选项/选择web表单下载数据,php,http,url,curl,wget,Php,Http,Url,Curl,Wget,假设有一个网站有一系列选项/选择下拉列表。当用户从下拉列表a中进行选择时,他们选择的值将发布到服务器,并填充下拉列表B。下拉列表B以相同的方式填充下拉列表C。当选择下拉列表C时,数据将显示在C中特定于其选择的数据。之前的选择会一直保留,除非它们更改更高的值,在这种情况下,所有内容都会重置在该值以下。在HTML中,它如下所示: Drop-Down A <select class="submitOnChange"> <option value="a1">A</opt

假设有一个网站有一系列选项/选择下拉列表。当用户从下拉列表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]
每次选择更改时,脚本都会将所有选定选项的帖子发送给自己


我想从这个web应用程序下载所有数据;也就是说,我希望看到与所有可能的下拉C值相关的数据。最好的方法是什么?我看到wget被设置为递归地处理链接,但似乎不能处理这样的表单。我对最简单最快捷的方法很感兴趣。我知道PHP,所以我愿意用cURL编写脚本,但是如果有一个更简单的解决方案,比如一个已经在wget中实现了这一点的程序?我会感兴趣的。欢迎任何提示或建议。

您可以将信息结构化为一个链表,其中包含数据和父主键。这样,您可以一次下载所有数据,例如JSON

我们所做的是设置了三个web方法,第一个提供all set A选项,第二个和第三个提供一个和两个参数,所有三个都向客户端提供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>';
}

在这种情况下,success函数填充下一个select,但是您可以按照自己的意愿重新格式化数据。J包含数据。

您可以使用CURL来完成此操作

您可以从命令行使用它:

curl -d "name=Rafael%20Sagula&phone=3320780"                 http://www.where.com/guest.cgi
来源于CURL手册:

babonk

我认为您无法使用该html文件将数据发布到您的服务器,因为您错过了select部分中的name属性,它们应该如下所示:

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>

Zim博士,这是重新创建上述表格的答案还是下载的答案?我正在尝试使用curl下载它,所以我会计算它
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/