laravel에서 ajax로 간단한 양식 제출 후 제출 된 양식의 데이터로 기존 테이블에 새 행 삽입

간첩 한 이오 시아

양식의 submision은 ajax없이 잘 작동하지만 양식을 새로 고치지 않고 보낼 필요가 있습니다 (ajax에 의해).이 후 두 입력이 먼저 데이터베이스에 삽입되고 양식의 데이터가있는 새 행이 필요합니다. 여기 내 시도입니다. 양식이 새로 고침없이 제출되고 데이터베이스에 삽입되지만 제출 후 원하는 테이블에 표시되지 않고 완전한 예를 찾을 수 없으므로 도와주세요. 조언에 감사드립니다.

컨트롤러의 기능 :

public function newClient(){
    if(Request::ajax()){
        $nume=Input::get('add_nume');
        $tel=Input::get('add_telefon');
        $client=new Clienti;
        $client->nume=$nume;
        $client->telefon=$tel;
        $client->save();

    }
}

경로 :

Route::get('/clienti/', 'HomeController@showClienti');
Route::post('/adaugaclient', 'HomeController@newClient');

보기에서 스크립트 :

<script>
$(document).ready(function(){
$('form[data-remote]').on('submit', function(e){ 
    var form = $(this);
    var url = form.prop('action');
    var clienti=$('#add_clienti');
    $.ajax({
        url:url,
        data:form.serialize(),
        type: 'POST',
        dataType: "json",
        success: function(data){
            console.log('data');
        //i want to insert in table #listaclienti at the end of it
        }
    });
    return false;
}); 

});

내가 제출 한 양식 내부보기 :

<div id='adauga_client'>
<!--
<form method='post' action='adaugaclient' id='add_customer'>
-->
{{Form::open(['data-remote'])}}
<table border='1' id='adaugaclient'>
<thead >
    <tr>
        <td colspan='2'>Adauga client</td>
    </tr>
</thead>
<tbody>
    <tr>
        <td><label for="add_nume">Nume</label></td>
        <td class='right'>
            <input name="add_nume" type="text" id="add_nume" value="">
        </td>
    </tr>
    <tr>
        <td><label for="add_telefon">Telefon</label></td>
        <td class='right'><input name="add_telefon" type="text" id="add_telefon" value=""></td>
    </tr>
    <tr>
        <td colspan='2'><input name="add_btn" type="submit" id='add_client' value="Adauga client"     class="add_btn" ></td>
    </tr>
</tbody>
</table>
{{Form::close()}}
</div>

데이터를 삽입 할 테이블 :

<div id='clienti'>
<table border="1" id='listaclienti' align="center">
<thead>
    <tr>
        <td>Nume</td>
        <td>Telefon</td>
        <td>Modifica</td>
        <td>Sterge</td>
    </tr>
</thead>
<tbody>
@foreach($clienti as $client)
 <form method="post" action="{{ URL::to('/clienti/modifica/'. $client->id) }}" accept-charset="UTF-8">
    <tr>           
        <td><input type='text' name='nume' id='nume' value='{{$client->nume}}'></td>
        <td><input type='text' name='telefon' id='telefon' value='{{$client->telefon}}'></td>
       <td><button type='submit'>Modifica</button></td>
       <td><a href="clienti/sterge/{{$client->id}}"><button type='button'>Sterge</button></a>   </td>
    </tr>
</form>

@endforeach

</tbody>
</table>
</div>
Lukasgeiter

먼저 컨트롤러에서 방금 저장 한 데이터를 반환해야합니다. 이를 Response::json()위해 Laravels 사용할 수 있습니다 .

public function newClient(){
    if(Request::ajax()){
        // ....

        return Response::json($client);
    }
}

그 후에 data성공 콜백에서 와 같이 모델의 JSON 표현을 받아야합니다 . 그런 다음 기본 jQuery입니다. 테이블 요소를 만들고 테이블에 추가합니다. 모든 코드를 작성하지는 않겠지 만 이것이 데이터에 액세스하는 방법입니다. 나머지는 스스로 알아낼 수 있어야합니다.

$.ajax({
    url:url,
    data:form.serialize(),
    type: 'POST',
    dataType: "json",
    success: function(data){
        console.log(data); // json of your laravel model
        console.log('Num: ', data.num); // access property
    }
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관