我有一个下拉列表,其中包含插入数据库中的数据。但是,我想回显下拉列表中显示的名称而不是值。在给定的片段中,我希望显示问题的值,但它始终显示cat_id的值。这只是我所拥有的。如何回显所选值的名称?
@$cat=$_GET['cat'];
if(strlen($cat) > 0 and !is_numeric($cat)){
echo "Data Error";
exit;
}
$quer2="SELECT DISTINCT issue, cat_id FROM slider_issue order by cat_id";
if(isset($cat) and strlen($cat) > 0){
$quer= "SELECT DISTINCT req FROM slider_requirement where cat_id=$cat order by cat_id";
} else {
$quer= "SELECT DISTINCT req FROM slider_requirement order by req";
}
echo "<form method = post name = f1 >";
echo "<select name = 'cat' onchange=\"reload(this.form)\" style=\"margin-left: 500px;\">";
foreach ($dbo->query($quer2) as $row_issue) {
if($row_issue['cat_id']==@$cat){
echo "<option selected value='$row_issue[cat_id]'>$row_issue[issue]</option>"."<br>";
} else {
echo "<option value='$row_issue[cat_id]'>$row_issue[issue]</option>";
}
}
echo "</select>";
echo "<center><br>";
if(isset($_GET["cat"])){
$draft= $_GET["cat"];
echo $draft;
}
在示例屏幕截图中,1是cat_id值,而已烧毁的转换器是来自行发行的数据。我需要的是回应行问题。因此,应使用已刻录的数据替换1。
答案 0 :(得分:0)
当您显示表格时,我认为您在连接回显时遇到问题。您可能在PHP中知道,我们使用.
连接字符串。在foreach中,当回显时,您没有正确地串联和调用结果的行:
echo "<select name = 'cat' id='firstSelect' style=\"margin-left: 500px;\">";
foreach ($dbo->query($quer2) as $row_issue) {
if($row_issue['cat_id']==@$cat){
echo "<option selected value='".$row_issue[cat_id]."'>".$row_issue['issue']."</option><br>";
} else {
echo "<option value='".$row_issue[cat_id]."'>".$row_issue['issue']."</option>";
}
}
echo "<p class='selected'></p>";
要更改选定选项的刻录值,必须将$row_issue['issue']
列另存为该选项的值,因为这是当您请求选定选项时将保存选择对象的值。之所以出现cat_id
,是因为您在此处进行了说明:echo "<option value='".$row_issue[cat_id]."'>"...
现在,当您通过Javascript或JQuery选项选中该事件时,需要捕获该事件并刷新以下信息:
$(document).on('change', 'select', function(event) {
var valueSelected = $('#firstSelect').val();
$('.selected').val(valueSelected);
});
告诉我它是否适合您。