我在表单提交后保留表单元素中的值。我使用以下选项框可以正常工作:
<select name="BranchManager" class="formfield" id="BranchManager"onchange="document.forms[0].submit();SEinit();"><option value="">-- Select Manager --</option>
<?php
$area = $_POST['Area'];
if ($area); {
$BMquery = "SELECT DISTINCT Branch_Manager FROM Sales_Execs WHERE AREA = '$area' ".
"ORDER BY Branch_Manager";
$BMresult = mysql_query($BMquery);
while($row = mysql_fetch_array($BMresult))
{
echo "<option value=\"".$row['Branch_Manager']."\">".$row['Branch_Manager']."</option>\n ";
}
}
$branchmanager = $POST['BranchManager'];
?>
<script type="text/javascript">
document.getElementById('BranchManager').value = <?php echo json_encode(trim($_POST['BranchManager']));?>;
</script>
哪种方法正常(如果它不是最干净/最有效的代码,我正在尽我所能!)下一个字段是需要根据上面的分支管理器名称填充的文本字段。所以我用过:
<input name="BranchNum" type="text" class="formfield" id="BranchNum" size="3" maxlength="3" />
<?php
$bm = $_POST['BranchManager'];
if ($bm); {
$BNumquery = "SELECT DISTINCT BRANCH_NUM FROM Sales_Execs WHERE Branch_Manager = '$bm' ";
$BNumresult = mysql_query($BNumquery);
}
$branchnum = $POST['BranchNum'];
?>
<script type="text/javascript">
document.getElementById('BranchNum').value = <?php echo json_encode($BNumresult);?>;
</script>
哪个不行?我在哪里错了?
答案 0 :(得分:0)
为什么在条件检查后你有分号?
if ($bm);
if ($area);
这将始终终止语句,无论$ bm或$ area中的值如何,大括号中的任何内容都将始终执行
答案 1 :(得分:0)
您需要一个dql fetch函数来从$ result中检索数据。
if($row = mysql_fetch_array($BNumresult))
$branchNum = $row[BRANCH_NUM];
当输入标记的大小= 3时,为什么要使用json_encode? p>
答案 2 :(得分:-1)
您需要输入value =“&lt;?echo $ variableName;?&gt;”在输入字段内
答案 3 :(得分:-1)
原因是因为a)你不是echo
,而b)你必须echo
在与选择中不同的地方。您必须在输入的value
部分回显。
<?php
$bm = mysql_real_escape_string($_POST['BranchManager']);
if ($bm) {
$BNumquery = "SELECT DISTINCT BRANCH_NUM FROM Sales_Execs WHERE Branch_Manager = '$bm' ";
$BNumresult = mysql_query($BNumquery);
}
$branchnum = $POST['BranchNum'];
?>
<input name="BranchNum"
type="text"
class="formfield"
id="BranchNum"
size="3"
maxlength="3"
value="<?php echo htmlspecialchars($branchnum); ?>" />
根据评论,它们是正确的;你不应该使用mysql_*
。相反,请看PDO;虽然这超出了你的问题的范围。