我有一个文件,我们有一个网络表单提交。这种形式有4到5个阴影。其中三个相互依赖。当选择第一个下拉列表中的值时,会触发一个函数“document.formName.submit()”,它会刷新整个页面并执行mySql的查询,我们会为下一个字段获取一个新值,依此类推。我不希望刷新发生。我可以在没有页面刷新的情况下执行此过程并从数据库中获取值。
以下是该代码的一部分
<div class="ca-box">
<div class="bold child1">Country<span class="validation"> *</span></div>
<div class="child2">
<select id="cid" name="cid" onchange="javascript:submit_form() ;">
<?
$query = "SELECT * FROM country";
$result = $DB->DB_Query($query);
?>
<option value="">- Select Country -</option>
<?
for($i = 0; $i < count($result); $i++){
if ($cid == $result[$i]['cid']) {
echo "<option value=\"".$result[$i]['cid']."\" selected=\"selected\">".$result[$i]['country']."</option>";
} else {
echo "<option value=\"".$result[$i]['cid']."\" >".$result[$i]['country']."</option>";
}
} ?>
</select>
</div>
</div>
<div class="ca-box">
<div class="bold child1">Region<span class="validation"> *</span></div>
<div class="child2">
<? echo $_POST['cid']." ==="?>
<select id="rid" name="rid" onchange="javascript:submit_form2();">
<?
$query = "SELECT * FROM region where cid=".$cid;
$result = $DB->DB_Query($query);
?>
<option value="">- Select Region -</option>
<?
for($i = 0; $i < count($result); $i++){
if ($rid == $result[$i]['rid']) {
echo "<option value=\"".$result[$i]['rid']."\" selected=\"selected\">".$result[$i]['region']."</option>";
} else {
echo "<option value=\"".$result[$i]['rid']."\" >".$result[$i]['region']."</option>";
}
} ?>
<option value="Other">Other</option>
</select>
</div>
</div>
<div class="ca-box">
<div class="bold child1">City<span class="validation"> *</span></div>
<div class="child2">
<select id="ccid" name="ccid">
<?
$query = "SELECT * FROM city where rid =".$rid;
$result = $DB->DB_Query($query);
?>
<option value="">- Select City -</option>
<?
for($i = 0; $i < count($result); $i++){
if ($ccid == $result[$i]['ccid']) {
echo "<option value=\"".$result[$i]['ccid']."\" selected=\"selected\">".$result[$i]['city']."</option>";
} else {
echo "<option value=\"".$result[$i]['ccid']."\" >".$result[$i]['city']."</option>";
}
} ?>
<option value="Other">Other</option>
</select>
</div>
</div>
<script type="text/javascript">
function submit_form(location) {
//document.formName.type.value="location";
//document.formName.action = document.formName.action + "#" + location
document.formName.ccid.value = "";
document.formName.rid.value = "";
document.formName.submit();
return true;
}
function submit_form2(location) {
//document.formName.type.value="location";
//document.formName.action = document.formName.action + "#" + location
document.formName.ccid.value = "";
document.formName.submit();
return true;
}
</script>
答案 0 :(得分:0)
我建议使用jQuery进行AJAX调用,因为jQuery团队为您简化了流程。
我建议搜索“JQuery AJAX和php从mysql数据库中获取数据”。您将找到许多资源,演示如何获取您尝试获取的值。
另外,请勿使用document.formName.submit()
来检索值。 Javascript是一种客户端语言,应该能够使用AJAX来检索信息,而无需“提交”或刷新页面。
对于相关的StackOverflow问题: jQuery Ajax POST example with PHP
有关jQuery AJAX调用的进一步文档: http://api.jquery.com/jquery.ajax/
祝你好运。