如何从类型的数据源中获取值的文本:'select'? (x-editable)(laravel 5.2)

时间:2016-10-16 06:08:49

标签: javascript php laravel laravel-5.2 x-editable

我在laravel 5.2中使用x-editable。我想从data-source存储相应值的文本。我只能将值存储在数据库中。

我的观点:

<label>Course:</label><a  href="#" id="course" data-name="course" data-type="select" data-value="" data-pk="{{Auth::user()->id}}" data-source="{1: 'B.tech', 2: 'M.tech'}" data-title="course" data-url="{{route('course')}}"></a>

控制器:

    public function course(Request $request)
{

    $account = new Account();
    $name = $request->get('name');
    $value = $request->get('value');

   $request->user()->accounts()->update([$name => $value]);




    return redirect()->back();
}

2 个答案:

答案 0 :(得分:3)

默认情况下,X-Editable创建$hotel->place,其中源对象键作为选项值,源值作为选项显示文本。当然,当发送请求时,会发送值(在您的情况下为1或2)而不是文本。

但是如果源是一个数组,则该值将与文本相同。所以,你可以做到

select

如果您无法或不想更改原始数据源,而不是将源设置为属性,则可以在初始化组件时执行此操作:

<a ... data-type="select" data-source="['B.tech', 'M.tech']"></a>

答案 1 :(得分:0)

我有同样的问题。关键是我想将值和显示的文本分开,但是在选定选择之后,出于某些显示需要,我仍然需要获取“显示的文本”。 (假设我要创建一个模式窗口,确认选择的文本,而不是值)。我们如何找回这些文字? 之前的答案是告诉我们:不要将文本和值分开。 好吧,我确实需要将它们分开。

这是我可以设法建立的解决方案,这要归功于K Scandrett在其他地方的回答。 我正在寻找“ onSave”事件中的值以进行优化。

$('.MyTable').on('save', function(e, params) {
    source = $(this).data('editable').input.sourceData
    var selected = $.fn.editableutils.itemsByValue(params.newValue, source); 
    if (selected.length) {
           console.log(selected[0].value);
           console.log(selected[0].text);
    }
});

甚至可以直接在“成功”选项上进行设置:

$('.MyTable').editable({
   ...
   success: function(responsetxt, newValue) {           
    source = $(this).data('editable').input.sourceData;
    var selected = $.fn.editableutils.itemsByValue(newValue, source); 
    if (selected.length) {
       console.log(selected[0].value);
       console.log(selected[0].text);
    }           
   },
   …
});