gpt4 book ai didi

javascript - Vue 多选与 axios 调用数据库,laravel

转载 作者:搜寻专家 更新时间:2023-10-30 22:46:11 28 4
gpt4 key购买 nike

出于某种原因,我不太清楚如何使用 Vue 正常工作来获得“自动完成”样式的多选。

我正确设置了在我的 axios block 中调用的路由,并且 Controller 设置为使用查询作为使用 LIKE 子句访问数据库的方式,但是某处出了问题,我的多选没有被填充来自数据库的结果,使其可搜索。

我在这里做错了什么?

路线:

Route::get('search', 'Controller@searchTags')
->name('search');

Controller :

public function searchTags(Request $request)
{
if ($request->get('query')) {
$query = $request->get('query');
$data = TAGS::where('TAG_DATA', 'LIKE', "%{$query}%")->get();

$output = '<ul class="dropdown-menu" style="display:block; position:relative">';
foreach ($data as $row) {
$output .= '<li><a href="#">' . $row->tag_data . '</a></li>';
}
$output .= '</ul>';

return $output;
}
}

Blade :

<div id="tagContent">
<multiselect v-model="value" open-direction="bottom" :options="options" :multiple="true" :close-on-select="false" :taggable="true" :clear-on-select="false" :preserve-search="true" placeholder="Add Tag(s)" label="name" track-by="name">
<template slot="selection" slot-scope="{ values, search, isOpen }"><span class="multiselect__single" v-if="values.length &amp;&amp; !isOpen">{{ values.length }} options selected</span></template>
</multiselect>
</div>

new Vue({
components: {
Multiselect: window.VueMultiselect.default
},
data () {
return {
value: [],
options: []
}
},
methods: {
read(){
window.axios.get('campaigns/search').then(({ data }) =>{
console.log(data)
});
},
addTag (newTag) {
const tag = {
name: newTag,
code: newTag.substring(0, 2) + Math.floor((Math.random() * 10000000))
}
this.options.push(tag)
this.value.push(tag)
}
}
}).$mount('#tagContent');

最佳答案

我相信您的示例中缺少一些东西。

  1. 您需要在搜索输入更改时触发 read 函数 - 为此使用 @search-change 事件

  2. 您需要将 axios 请求的结果发送到 this.options,以便 multiselect 组件可以使用它们.

this example ,我已经使用超时模拟了数据请求,但你应该明白了。您还可以使用 loading 属性让您的用户知道幕后发生的事情。

关于javascript - Vue 多选与 axios 调用数据库,laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55612409/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com