【问题标题】:How to get textarea value to controller without form::open如何在没有 form::open 的情况下将 textarea 值传递给控制器
【发布时间】:2016-09-13 11:32:30
【问题描述】:

在这里我想保存到数据库,来自 textarea 的值 'isi',当我运行函数时,总是从 textarea 获取空值,我该怎么做才能解决这个问题? 谢谢。

这里的脚本在视图中:

<div class="tab-pane active" id="tab_1">
                <div class="box-body">
                  <textarea class="form-control" rows="3" placeholder="Apa yang Anda pikirkan ?">{!! Input::old('quoteinput') !!}</textarea>
                </div>
                <div class="box-footer">
                <a href="{!! URL::to('/timeline/quote') !!}">
                  <button type="submit" class="btn btn-info pull-right">Posting</button>
                </a>
                </div>
              </div> 

这里是来自控制器的脚本:

public function postQuote()
    {
        $Qdata = new QuotesModel;
        $Qdata -> kode_user     = Auth::user()->kode_user;
        $Qdata -> kode_quote    = 'Q'.strtotime(Carbon\Carbon::now()).rand(100,999);
        $Qdata -> isi           = Input::get('quoteinput');
        $kategori               = 'quote';

        if($Qdata->save())
        {
            $this->postToTimeline($Qdata->kode_quote , $kategori);
        }

        Session::flash('message', 'Berhasil memposting !');
        return redirect()->back(); 
    }

路由中的脚本:

Route::get('/timeline/quote', 'ClientTimeLineContr@postQuote' );

【问题讨论】:

    标签: php laravel post getvalue


    【解决方案1】:

    您可以使用 jquery 来获取 textarea 值而无需表单。并将其保存到数据库使用 AJAX。

    HTML

    <textarea name="quoteinput" class="form-control mytextarea" rows="3" placeholder="Apa yang Anda pikirkan ?">{!! Input::old('quoteinput') !!}</textarea>
    <button type="submit" class="btn btn-info pull-right">Posting</button> 
    

    Jquery 和 ajax:

    $(document).on('click','button',function(e)
    {
        e.preventDefault();
        var text = $('textarea.mytextarea').val();   //this is the value of textarea
        $.ajax({
            type:"POST",
            url: "{{url('/timeline/quote')}}",
            data: {
            "_token": "{{ csrf_token() }}",
            "text": text
            },
    
            success: function (data) {
                var res = $.parseJSON(data);
                if(res == true)
                {
                     alert('saved');            
                }
            }
        });
    });
    

    控制器

    public function postQuote(Request $request)
        {
            if($request->ajax())
            {
                $text=$request->text;
                //save this textarea value to database
                echo json_encode(TRUE);die;
        }
    

    【讨论】:

    • 这将是我的参考。谢谢
    • 这对我有用
    【解决方案2】:

    如果不在 html 中创建表单,您将无法获得价值,无论您是使用 form::open 还是通过 &lt;form&gt; 标签。您还必须将名称提供给textarea

    <div class="tab-pane active" id="tab_1">
        <dorm method="GET" action="{!! URL::to('/timeline/quote') !!}">
            <div class="box-body">
                <textarea name="quoteinput" class="form-control" rows="3" placeholder="Apa yang Anda pikirkan ?">{!! Input::old('quoteinput') !!}</textarea>
            </div>
            <div class="box-footer">
                <button type="submit" class="btn btn-info pull-right">Posting</button>
            </div>
        </form>
    </div> 
    

    【讨论】:

    • 感谢您的关注和回答,这很有帮助
    猜你喜欢
    • 1970-01-01
    • 2019-05-22
    • 2015-12-27
    • 2021-04-14
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多