jQuery将表单选择值添加到远程文件的$ _GET值
我在寻求以前的威胁方面的帮助,并且这个建议让我朝不同的方向发展。因此,线程死亡。我取得了很大的进步,我的回答非常接近。
我有两个文件: 本地文件:maps.php 远程文件:maps_append.php
maps.php具有形式选择标签。我需要jQuery来获得的任何选项是选择的价值,并与maps_append.php CMD =(值)加载远程URL(maps_append.php)
我是什么?
<form method="post" action="maps.php">
<td colspan="3">
<select id="cmdview" name="cmd">
<option value=""></option>
<option value="commdata" {if $cmdOn == "commdata"}selected="true"{/if}>Communications</option>
<option value="contacts" {if $cmdOn == "contacts"}selected="true"{/if}>Contacts</option>
<option value="enrollment" {if $cmdOn == "enrollment"}selected="true"{/if}>Enrollment</option>
<option value="all" {if $cmdOn == "all"}selected="true"{/if}>All Schools</option>
</select>
<input type="submit" name="doSwitch" value="Submit" />
</td>
<div id="append"></div2>
</form>
这是我的HTML。我的jQuery是:
<script>
$('#cmdview').change(function() {
//alert('Handler for .change() called.');
var str = "";
url = "maps_append.php?cmd=str";
$("select option:selected").each(function() {
str += $(this).text() + " ";
});
$.post(url, { cmdview: str } ,
function(data) {
var content = $(data);
$('#append').load(url);
})
.change();
});
</script>
问题是我的$ _GET值(cmd)总是“str”。它不会采用我选择的HTML的价值。我无法弄清楚它的语法以获得更好的选择价值。
所有我需要的是str = =值的任何<。选项 。 >被选中
编辑:: 我想补充一点,我知道$ .post是不需要的,现在我正在做一个_GET值。但是,我不知道该怎么格式化这个... :(
确保你有适当的缩进,要不然你会你已经清理了你的大部分代码,你在你的url中拼写“str”而不是连接变量:
<script>
$('#cmdview').change(function() {
//alert('Handler for .change() called.');
var str = '',
url = 'maps_append.php?cmd=';
$('select option:selected').each(function() {
str += $(this).text() + ' ';
});
url += str;
$.post(url, { cmdview: str } , function(data) {
var content = $(data);
$('#append').load(url);
}).change();
});
</script>
另请注意,您第一次做一个POST请求maps_append.php
这将有两个$_POST['cmdview']
和$_POST['cmd']
设置为您发送的选项,那么一旦该脚本返回的响应,通过使用load()
方法做一个GET请求,这将随后替换#append
的HTML。不知道为什么会出现在年底,去年change()
。
从我可以告诉,这听起来更像是你试图做更多的事情是这样的:
<script>
$('#cmdview').change(function() {
var url = 'maps_append.php?cmd=' + $(this).val();
$.get(url, function(data){
$('#append').append(data);
});
});
</script>
变化
url = "maps_append.php?cmd=str";
到
url = "maps_append.php?cmd=" + str;
我试过了。在maps.php中,我正在做print_r($ _ GET);.它说[cmd] => ....没什么。该值不被传递。 – Charlie
由于某些原因,我不明白,str不是我的选择选项的价值。 ( – Charlie
)'str ='“'现在还为时过早,你需要在'.post()'。'.post(”maps_append.php?cmd =“+ str,{cmdview :str},'。'str'也作为变量'cmdview'传递,所以你可以通过'$ _POST ['cmdview']'在php中访问它,并把它放在url上,只需要url (“)maps_append.php”' –
我相信,你正在试图完成的任务可以用更简单的代码来解决。试着用这个替换现有的JavaScript:
$(function() {
$('#cmdview').change(function() {
$('#append').load("maps_append.php?cmd=" + $(this).val());
}).change();
});
此代码简单地说,当你改变#cmdview
加载文件maps_append.php?cmd=
的内容与#cmdview
附加到URL的值。这应该让这样你就可以在你的PHP代码$_GET['cmd']
访问#cmdview
值。
我也不确定。我刚刚通过了这个代码的大量版本。这是我在做print_r($ _ GET)时最接近它的工作。如果我知道如何正确格式化,我可以摆脱$ .post – Charlie
您是否看到我的备用解决方案?我想我已经在第二个解决方案中为您解决了很多问题(但我也在假设它应该如何工作)。 – Andrew
是的!安德鲁,你真棒!我现在得到_GET数据!谢谢!! – Charlie