PHP-提交后保留选中的文本
我想在提交后将所选文本保留在下拉列表中。 这是我表格中的PHP-提交后保留选中的文本,php,select,submit,Php,Select,Submit,我想在提交后将所选文本保留在下拉列表中。 这是我表格中的选择 <form id="form1" method="post" action=""> <input type="text" name='search' id='search' /> <?php $db = mysql_connect($dbHost,$dbUser,$dbPass); mysql_select_db($dbname,$db); $sql = mysql_query("SELECT * FR
选择
<form id="form1" method="post" action="">
<input type="text" name='search' id='search' />
<?php
$db = mysql_connect($dbHost,$dbUser,$dbPass);
mysql_select_db($dbname,$db);
$sql = mysql_query("SELECT * FROM adminklasifier");
while($row = mysql_fetch_array($sql)) {
$clsfr = $row['klasifier'];
$sql = mysql_query("SELECT * FROM adminklasifier");
echo '<select name="cmake" id="cmake" onchange="val();" autofocus width="10">';
echo '<option value="">-Pilih Domain Klasifikasi-</option>';
while($row = mysql_fetch_array($sql)) {
echo '<option ' . ($clsfr==$row['klasifier']) . ' value="'.$row['klasifier'].'">'.$row['klasifier'].'</option>';
}
echo '</select>';
}
?>
<input type="submit" id='button' name='button'></input>
</form>
我已经分析了其他案例,但还没有成功
您能给我一个建议吗?发布的用户响应将在您页面上的$\u POST
数组中。在您的情况下,“cmake”表单字段的值将作为$\u POST['cmake']
提供。在遍历查询结果时,只需将“selected”打印到相应的选项中即可
echo '<option ' . ($clsfr==$row['klasifier']) . ' value="'.$row['klasifier'].'"'.(($_POST['cmake'] == $row['klasifier']) ? 'selected=selected' : NULL).'>'.$row['klasifier'].'</option>';
echo'.$row['klasifier'].';
我总是喜欢使用表单帮助器来创建我的选择
function formSelect($name, $options, $value, $attributes = array()){
$str = "<select name='".$name."'";
foreach($attributes as $k=>$v){
$str.=" ".$k."='".$v."'";
}
$str.= ">";
foreach($options as $optionLabel=>$optionValue){
$str.= "<option value='".$optionValue."' ";
if($value == $optionValue) $str.= "selected='selected'";
$str.= ">".$optionLabel."</option>";
}
$str.= "</select>";
return $str;
}
函数formSelect($name、$options、$value、$attributes=array()){
$str=”“;
foreach($options作为$optionLabel=>$optionValue){
$str.=“..$optionLabel.”;
}
$str.=”;
返回$str;
}
然后以你的形式,你可以这样做
<form id="form1" method="post" action="">
<input type="text" name='search' id='search' />
<?php
$db = mysql_connect($dbHost,$dbUser,$dbPass);
mysql_select_db($dbname,$db);
$options = array();
$sql = mysql_query("SELECT * FROM adminklasifier");
while($row = mysql_fetch_array($sql)) {
$options[$row['klasifier']] = $row['klasifier'];
}
// add the default option
array_unshift($options, "-Pilih Domain Klasifikasi-");
// call the helper
$attributes = array("onchange"=>"val();","autofocus"=>"autofocus","width"=>"10");
echo formSelect("cmake", $options, isset($_POST["search"])?$_POST["search"]:"", $attributes);
?>
<input type="submit" id='button' name='button'></input>
</form>
您可能希望查看模板框架(如Smarty或Moustach)或全功能应用程序框架(如Zend framework、Symphony、Yii或Codeigniter),而不是手动执行此操作。他们将花费大量的精力制作一个PHP应用程序(并使您的代码更安全地引导)。@dethtron5000:在不学习基础知识的情况下学习一个模板框架(或任何框架),这比用其他方法来做会更让您感到沮丧。@MadaraUchiha可能,是的,但不一定。一个好的框架还可以帮助积极的工程师学习OO技术、关注点分离、体系结构等。一个好的框架还可以帮助降低SQL/XSS注入和其他安全问题的风险。我同意这不能代替对语言的基本理解,但我宁愿有人从一个框架中学习,而不是启动一个不安全/僵化的站点……我不喜欢任何有echo”“
的行,尤其是在function@RoyalBg你在哪里看到的?在你的代码中,回显一个函数,该函数已将html分配给一个变量。。。完全混乱的业务逻辑表示。@RoyalBg您的方法是什么?另外,我的函数中唯一的业务逻辑是构建select html