0
Я использую Laravel 5. Я хотел перечислить все имена базы данных в раскрывающемся списке , но я всегда получаю последнее значение. Я уже использую foreach loop, но ничего не происходит. Вот мой код:Последнее значение, которое извлекается при выпадающем списке Laravel 5
public function create(Request $request)
{
//echo "<pre>";
$sqlconn = mysqli_connect('127.0.0.1', 'root', '1234');
$showdb = "SHOW DATABASES";
$dbconn = mysqli_query($sqlconn, $showdb);
$dbnames = array();
while ($row=mysqli_fetch_assoc($dbconn)) {
$dbnames = $row;
foreach ($dbnames as $dbname => $value) {
if ($value != "information_schema" && $value != "performance_schema" && $value != "test" && $value != "mysql") {
//$dblists = implode(":", array($value));
$dblists = $value;
//print_r($dblists);
}
}
}
//die();
}
And here's my html codes:
<div class="col-md-12">
<div class="form-group @if($errors->has('description')) has-error @endif">
<div class="col-xs-2">
<label for="reports_description" class="control-label"><h5><b>Select Database:</b></h5></label>
</div>
<div class="col-xs-5">
<select class="form-control">
<option>---SELECT---</option>
<option value="{{$dblists}}">{{$dblists}}</option>
</select>
</div>
</div>
</div>
Две вещи, чтобы отметить для вас - 1. Вы инициализацией '$ dblists' как переменная не массив 2. '$ dblists' инициализируется внутри цикла foreach - следовательно, он будет содержать только« $ value »от последней итерации цикла. Вы должны инициализировать '$ dblists = [];' из цикла foreach, а затем в условии 'if' в цикле foreach' $ dblists [] = $ value' будет продолжать толкать значения в массив '$ dblists'; – Donkarnash