我在以前的威胁中寻求帮助,这个建议引导我走向另一个方向。因此,线程死了。我取得了很大的进步,我觉得我的答案非常接近。
我有两个文件: 本地文件:maps.php 远程文件:maps_append.php
maps.php有一个表单选择标记。我需要jQuery来获取选择的任何选项的值,并使用maps_append.php加载远程URL(maps_append.php)?cmd =(value)
我拥有的是:
<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 = =的值&lt; 。选项 。 &GT;被选中
EDIT :: 我想补充一点,我知道现在不需要$ .post我正在做一个_GET值。但是,我不知道如何格式化这个...... :(
答案 0 :(得分:2)
更改
url = "maps_append.php?cmd=str";
到
url = "maps_append.php?cmd=" + str;
答案 1 :(得分:1)
确保你有适当的缩进,否则你会很快迷路。我已经清理了大部分代码。你在你的网址中硬编码“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>
另请注意,您首先向maps_append.php
发送POST请求,该请求将$_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>
答案 2 :(得分:0)
我相信你想要完成的事情可以用更简单的代码来解决。尝试用以下内容替换现有的JavaScript:
$(function() {
$('#cmdview').change(function() {
$('#append').load("maps_append.php?cmd=" + $(this).val());
}).change();
});
此代码只是说,当您更改#cmdview
时,会将文件maps_append.php?cmd=
的内容加载到网址后附加#cmdview
的值。这应该使您可以使用#cmdview
访问PHP代码中$_GET['cmd']
的值。