I am confronting a problem trying to fill my select field with the fat-free framework.
I try to use axios as in most tutorial, I point to "response.data" but nothing fills in my field.
I have this code in my model:
public function ReadUserData($action) {
if (strcmp($action, "read") == 0) {
global $f3;
$user = $this->db->exec("SELECT * FROM users");
return json_encode($user);
}
}
I have this in my controller:
$Users = new UserModel($this->db);
$DataUser = $Users->ListDatabaseUser();
if (isset($_GET['action'])) {
$data = $Users->ReadUserData($_GET['action']);
$f3->set("users", $data);
}
and in vue js I have:
<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);
});
}
});
I also try to replace:
Myapp.make_options = "{{ @users }}"
but without sucess :/
For display that I have this in 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>
Currently my field is empty and I do not understand why my json is not interpreted correctly