如何在没有form :: open的情况下将textarea值传递给控制器

时间:2016-09-13 11:32:31

标签: php laravel post getvalue

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

这里的脚本在视图中:

<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' );

2 个答案:

答案 0 :(得分:0)

如果不在html中创建表单,您就无法获得价值,而是使用form::open<form>标记创建表单。您还必须将名称命名为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> 

答案 1 :(得分:0)

您可以使用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;
    }