Maison >développement back-end >tutoriel php >Partager des exemples d'utilisation d'ajax pour soumettre des formulaires dans le framework Lavarel

Partager des exemples d'utilisation d'ajax pour soumettre des formulaires dans le framework Lavarel

小云云
小云云original
2018-01-08 15:41:072210parcourir

Parce que Laravel doit ajouter {{csrf_field()}} lors de la soumission de données sous forme de publication pour éviter les attaques intersites. Cet article partage principalement avec vous la méthode d'utilisation d'ajax pour soumettre le formulaire dans le framework lavarel. Jetons un coup d'œil. J'espère que cela pourra aider tout le monde.

Introduction à Laravel :

Laravel est un framework de développement Web PHP simple et élégant (PHP Web Framework). Il peut vous libérer des codes désordonnés comme les nouilles ; il peut vous aider à créer une application réseau parfaite, et chaque ligne de code peut être concise et expressive. Le « développement » doit être un travail mental créatif, et non un « code de base » ennuyeux.

Allons droit au but, car lorsque Laravel soumet des données sous forme de publication, il doit ajouter {{csrf_field()}} pour empêcher les attaques intersites, il est donc naturel de l'ajouter lorsque vous soumettez le formulaire en utilisant ajax.

J'ai vu de nombreuses solutions sur Internet. Je l'ai résolu avec la méthode suivante :

1. Tout d'abord, ajoutez une méta au modèle :

<meta name="_token" content="{{ csrf_token() }}"/>

2. , puis ajoutez

headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
},

dans la méthode ajax. C'est la méthode ajax. J'ai trouvé les fonctions jquery très utiles, $().serialize() et $().serializeArray(), j'utilise cette dernière. dans le code. Je peux récupérer les données sous le formulaire et les transmettre directement via ajax C'est incroyable !!! (L'ignorance fait rire tout le monde)

$(form[1]).submit(function(event){
    var data = $(form[1]).serializeArray();
    // console.log(data);
    $.ajax({
      type:'post',
      url:'/basic',
      data:data,
      headers: {
  'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
},
      success:function(msg){
        if (msg) {
          $('.basicEdit').hide();
          $('.basicShow').show();
          $('.basicShow span').html(data[1].value+' | '+data[2].value+' | '+data[3].value+' | '+data[4].value+'<br>'+data[5].value+' | '+data[6].value+' | '+data[7].value);
        }
      },
    });
    // event.preventDefault();
    return false;
  });

3 Puis dans Pour récupérer les données dans la méthode du contrôleur. , juste $req->le nom de votre formulaire.

public function basic(Request $req){
   // return $req->gender;
   $uid = Auth::user()->uid;
   // return $uid;
   // $inf = new \App\Info;
   $inf = Info::where('uid',$uid)->first();
   // return $inf;
   $inf->name = $req->name;
   $inf->gender = $req->gender;
   $inf->topDegre = $req->topDegre;
   $inf->workyear = $req->workyear;
   $inf->tel = $req->tel;
   $inf->email = $req->email;
   return $inf->save()?"ok":"fail";
  }

Pour résumer :

Je pense que chaque étape que j'ai dite est nécessaire !!!, le code écrit dans ma fonction de rappel est de réimprimez les données obtenues dans le formulaire. Vous pouvez ignorer les données inutiles, puis simplement jeter un œil au code présenté par un débutant PHP.

Recommandations associées :

La page du formulaire de soumission Ajax s'actualise rapidement avec des exemples

Exemples détaillés de la façon dont jQuery Validator vérifie les formulaires de soumission Ajax et Ajax méthode de passage des paramètres

Deux méthodes de jquery implémentant la soumission de formulaire ajax

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn