Php 从选项/选择web表单下载数据
假设有一个网站有一系列选项/选择下拉列表。当用户从下拉列表a中进行选择时,他们选择的值将发布到服务器,并填充下拉列表B。下拉列表B以相同的方式填充下拉列表C。当选择下拉列表C时,数据将显示在C中特定于其选择的数据。之前的选择会一直保留,除非它们更改更高的值,在这种情况下,所有内容都会重置在该值以下。在HTML中,它如下所示: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
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/