#php #vue.js #dropdown
#php #vue.js #выпадающий список
Вопрос:
Я сталкиваюсь с проблемой, пытаясь заполнить мое поле выбора обезжиренным фреймворком.
Я пытаюсь использовать axios, как в большинстве руководств, я указываю на «response.data», но в моем поле ничего не заполняется.
У меня есть этот код в моей модели:
public function ReadUserData($action) {
if (strcmp($action, "read") == 0) {
global $f3;
$user = $this->db->exec("SELECT * FROM users");
return json_encode($user);
}
}
У меня есть это в моем контроллере:
$Users = new UserModel($this->db);
$DataUser = $Users->ListDatabaseUser();
if (isset($_GET['action'])) {
$data = $Users->ReadUserData($_GET['action']);
$f3->set("users", $data);
}
и в vue js у меня есть:
<script type="text/javascript">
var Myapp = new Vue({
el: "#app",
delimiters: ['{%', '%}'],
data: {
heading: 'test',
dataSelect: null,
makes_options: []
},
created() {
axios.get('http://localhost/?action=read')
.then(function(response) {
Myapp.make_options = response.data;
console.log(Myapp.make_options);
});
}
});
Я также пытаюсь заменить:
Myapp.make_options = "{{ @users }}"
но без успеха :/
Для отображения того, что у меня есть это в html:
<label for="Select">Select</label>
<select class="form-control" name="dataSelect" id="dataSelect" v-model="dataSelect">
<option v-for="option in makes_options" :value="option.id">{% option.username %}</option>
</select>
В настоящее время мое поле пустое, и я не понимаю, почему мой json неправильно интерпретируется
Комментарии:
1.
makes_options
в данных иMyapp.make_options
отсутствуетs
. Может быть, в этом проблема?2. Вы пробовали проверить, где возникает проблема? Все ли данные отправляются на серверную часть, как ожидалось (что привело бы к устареванию
vue.js
тега) — или ваша проблема в агрегировании данных (что привело бы к устареваниюphp
тега)?3. да, тогда я добавляю «s», но в консоли. в журнале «Myapp.makes_options» у меня есть массив. Отображение не означает, что это действительно странно, мой select выполняется с тем же номером, что и в моей базе, но в нем ничего не отображается.