2016-03-03 3 views
1

У меня есть этот DIV:Laravel добавить данные после успеха AJAX

@foreach($bids as $b) 
<div class="bids notice notice-lg"> 
    <strong>{{$b->user->name}}</strong> siūlo <span style="font-size: 18px" class="label label-success">{{$b->bid}} €</span> 
</div> 
@endforeach 

И это мой AJAX:

$(function(){ 

$('#placeBid').on('submit',function(e){ 
    $.ajaxSetup({ 
     headers: { 
      'X-CSRF-Token': $('meta[name="csrf_token"]').attr('content') 
     } 
    }); 
    e.preventDefault(e); 

     if($("#jsBidPrice").val() <= $(".minBid").val()){ 

     $.ajax({ 

     method:"POST", 
     url: $("#placeBid").attr("action"), 
     data:$(this).serialize(), 
     dataType: 'text', 
     success: function(data){ 
      $('.minBid').val(0); 
      $("#bidSubmit").attr("disabled", true); 

     }, 
     error: function(data){ 
      console.log("request failed"); 
     } 
    }) 
    } 
     else { 
      alert('Too low.'); 
     } 
    }); 
}); 

Как я могу добавить свои Див #bids новыми представленных данных? Это то, что я пытаюсь сделать прямо сейчас - я пытаюсь создать новый DIV и поместить его в значение foreach. Например:

var html = '<strong>{{$b->user->name}}</strong>'; 
html += 'siūlo <span style="font-size: 18px" class="label label-success">'; 
html += '54044 €</span>'; 

$('.bidsA').append(html); 

И я размещаю этот div над тендерами. Таким образом, HTML выглядит следующим образом:

@foreach($bids as $b) 

<div class="bidsA notice notice-lg"> 
</div> 


<div class="bids notice notice-lg"> 

    <strong>{{$b->user->name}}</strong>siūlo <span style="font-size: 18px" class="label label-success">{{$b->bid}} €</span> 

</div> 
@endforeach 

И, конечно, я получаю undefined variable $b как я должен правильно включить его с помощью AJAX в HTML?

EDIT

public function store(BidRequest $request, $id) 
{ 

    $product = Product::where('id', $id)->first(); 
    $bid = new Bid([ 
     'product_id' => $product->id, 
     'bid' => $request->bid, 
    ]); 

    Auth::user()->bid()->save($bid); 

    } 
} 
+0

Вы объединяете php и js, пожалуйста, попробуйте уточнить вашу конкретную проблему и добавить дополнительные сведения (например, код представления и элемент управления) ... –

+0

Мне нужно, чтобы при отправке формы значения из БД появлялись без обновления страницы. Мой AJAX вставляет их в БД, я просто не знаю, как показать его после отправки формы. – hulkatron

+0

Не могли бы вы добавить действие, вставляющее значения в БД, и просмотр, который их показывает. –

ответ

1

Вы можете вернуть вид и обновить ту часть, которая содержит ставки.

В свою очередь контроллер $bids в view и он будет строить HTML со всеми процедурам дивы:

public function store(BidRequest $request, $id) 
{ 
    .... 

    $bids = Bid::orderBy('bid', 'DESC')->paginate(10); 

    return view('products.show', compact('bids')); 
} 

Тогда в JS вы получите HTML-код, вы должны просто вставляет его в родительский контейнер:

success: function(data){ 
    $('.bids_container').replaceWith(data); 
} 

Надеюсь, что это поможет.

+0

Я получаю сообщение об ошибке, а не успех от AJAX. – hulkatron

+0

Да, потому что вы используете 'dataType: 'text'' проверить мой ответ. В вашем [другом вопросе] (http://stackoverflow.com/questions/35770999/not-getting-alert-on-success-in-ajax # 35772799). –

+0

Хорошо, я удаляю его, и мне все еще нужно обновить страницу. – hulkatron

Смежные вопросы