У меня есть раскрывающийся список, заполняемый данными, вставляемыми в мою базу данных. Однако я хочу повторить имя, отображаемое в раскрывающемся списке, а не значение. В данном фрагменте я хотел, чтобы значение проблемы отображалось, но оно всегда отображает значение 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 следует заменить записанными данными.
Значение параметра — это единственное, что передается. Поэтому вам нужно использовать идентификатор, чтобы снова перейти Погляди к соответствующему имени в вашей базе данных.
Храните $dbo->query($quer2) внутри массива. Напишите функцию, которая зацикливает массив и возвращает правильный элемент на основе cat_id, или напишите дополнительный запрос на основе идентификатора.
что произойдет, если вы прокомментируете $draft?
@xmaster отображаемого значения не будет. Я хотел отобразить выбранные данные в динамическую таблицу



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, у вас проблемы с объединением эха при отображении таблицы. Как вы, наверное, знаете, в 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);
});
Скажи мне, работает ли это для тебя.
Он работает нормально, проблема в том, что значение отображается, а не проблема.
@BlueMinnie, пожалуйста, добавьте несколько примеров эха, чтобы понять, в чем проблема.
Пожалуйста, смотрите обновленный вопрос
@BlueMinnie, какой столбец $row_issue вы хотите, чтобы он отображался под выбором?
issue — это имя столбца ("".$row_issue['issue'].")
@BlueMinnie проверьте новую часть кода.
Однако он работает так, как я хотел, отображаемые значения взяты из моего второго раскрывающегося списка, а не из выбранного раскрывающегося списка.
вам не хватает кавычек и дотов, измените их с
$row_issue[issue]на" . $row_issue['issue'] . "