2016-09-13 8 views
0

Здесь я хочу сохранить базу данных, значение isi из textarea, когда я запускаю функцию, всегда получает значение null из textarea, что я делаю для исправления? спасибо.Как получить значение textarea для контроллера без формы :: open

Вот скрипт в виде:

<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', '[email protected]'); 

ответ

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> 
+0

спасибо за внимание и ответ, это очень помогает ful –

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; 
    } 
+0

Это будет моя рекомендация. благодаря –