#php #html #regex
#php #HTML #регулярное выражение
Вопрос:
У меня возникли проблемы при сравнении этих двух строк, я не совсем уверен, что происходит, но когда значения содержат пробелы, а равенство должно быть истинным, возвращается false , хотя для строк без пробелов это работает безупречно.
У меня есть подлое чувство, что для NBSP должно быть какое-то предварительное значение или что-то в этом роде, но я просто совершенно не понимаю, что делать… В строке, на которую я ссылаюсь, будут звездочки.
function getRecords($column,$table){
$options = "";
if(isset($_POST['submit'])) {
$selected = $_POST[$column];
}
$query = "SELECT DISTINCT $column FROM $table ORDER BY $column ASC";
$result = mysql_query($query);
if(!$result) {
$options = "<option>Error Retrieving Records</option>n";;
}
else {
while($row=mysql_fetch_assoc($result)) {
$value = $row[$column];
$options .= "<";
$options .= "option value=";
$options .= $value;
исправления здесь, спасибо ridgerunner!
$options .= "option value="";
$options .= $value.""";
//define selected value if it exists
if(isset($selected)) {
*************** if($selected==$value) {
$options .= " selected";
}
$options .= "";
}
$options .= ">";
$options .= $value;
$options .= "</option>n";
}
}
return $options;
}
Комментарии:
1. Распечатайте результаты
selected
иvalue
, и вы легко сможете увидеть, где находится несоответствие.2. Пожалуйста, предоставьте print_r() подробную информацию о значении $. Кроме того, $selected определяется только в том случае, если задан $_POST[‘submit’].
Ответ №1:
Вам нужно заключить OPTION
значение атрибута в кавычки. Вместо:
$options .= "option value=";
Используйте:
$options .= "option value="";
И проделайте то же самое с закрывающей кавычкой. И на всякий случай вы также можете захотеть преобразовать любые двойные кавычки внутри $value
в amp;quot;
.
Комментарии:
1. Боже мой, ты решил это! В моем коде это выглядит немного странно… но это работает!
$options .= "option value=""; $options .= $value.""";