我的项目是PHP/MySQL。我正在使用Smarty作为模板引擎。jQuery .change加载不同的.php文件
我在智者文件< select>标签:
maps.tpl -
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<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>
到目前为止,我的jQuery代码发现其价值选择:
{literal}
<script>
$('#cmdview').change(function() {
//alert('Handler for .change() called.');
var str = "";
url = "maps_append.php";
$("select option:selected").each(function() {
str += $(this).text() + " ";
});
$('#append').text(str);
})
.change();
</script>
{/literal}
我需要jQuery来监听“cmdview”的值,然后将该值发布到文件:maps_append.php。我需要该文件.append /。更改当前文件(maps.php/maps.tpl)而不重新加载。
但是,我的jQuery只有一半工作。 jQuery的确找到了我想要传递的值,并且我已经知道它在ID为#append的< .d.i.v。>标记中加载了正确的值。我似乎无法做的唯一的事情就是取值,实际上它张贴到maps_append.php
任何帮助将非常感激!
谢谢!
PS:我觉得变化将是这样的:
这需要更换:
$('#append').text(str);
})
.change();
像这样的东西:
url = "maps_append.php";
$.post(url, { cmd: cmdview, value: str } ,
function(data) {
var content = $(data);
$("#result").append(content);
}
);
$term_input.val('');
});
编辑::
我当前的文件是maps.php。我现在已经将其追加maps_append.php使用此代码maps.php:
<script>
$('#cmdview').change(function() {
//alert('Handler for .change() called.');
var str = "";
url = "maps_append.php";
url = "maps_append.php";
$("select option:selected").each(function() {
str += $(this).text() + " ";
});
$('#append').load(url);
})
.change();
</script>
我只需要现在张贴选择变量的值!
建立更紧密还是......请参阅该编辑:
<script>
$('#cmdview').change(function() {
//alert('Handler for .change() called.');
var str = "";
url = "maps_append.php";
$("select option:selected").each(function() {
str += $(this).text() + " ";
});
$.post(url, { str: "$cmdOn" } ,
function(data) {
var content = $(data);
$('#append').load(url);
})
.change();
});
</script>
现在maps_append.php页面仅追加当我改变了选择标签的价值maps.php。我现在只需要在maps_append.php出现时包含select标签的值。
上选择什么选项,标准追加到该页面。如果“注册”为选定值,则会添加不同的表单输入。如果选择“联系人”,则会显示另一个输入。 “登记”被选中,数据需要被限制级别的大小。所以,我需要一个表单输入w /一个整数 - 文本输入将工作。 如果选择“通信”值,我需要一个时间戳值。因此,我加载了一个日历小程序,或者只有一个日期/月/年选择.append页面。 我需要更多的表单输入出现,但什么形式的输入取决于用户选择什么。 – Charlie
您通常不会更改PHP页面。记住不止一个用户可以同时使用该页面。使用AJAX完成此操作的典型方法是仅附加到当前的HTML。您也可以保存进度,因此如果用户稍后回来,则可以正确构建页面。在第二种情况下,你需要一个数据库。 – Hogan
保存当前用户的进度以保留其搜索值是一件好事,但现在它不是主要问题。我实际上试图做你说的话 - 附加到当前的HTML。我将另一个文件附加到当前文件。 maps.php是当前文件。选择值将发布到maps_append.php,而maps_append.php将附加到maps.php – Charlie