Faire un Update sans passer par un formulaire

Par samorssou, il y a 10 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

j'ai essayer a faire une modification sur mes données de ma BD sans passer par un formulaire juste avec un bouton, mais toujours il me rédige vers la page d'accueil merci de me répondre.

13 réponses

keulu, il y a 10 ans

ben faut que tu dise a ton bouton de t'emener la ou tu le souhaite. utilise plutot un < a href="" > plutot qu'un < input type="submit" > comme ca tu pourras lui dire de t'emmener la ou tu le souhaite sans passer par un formulaire. sinon tu peux regarder pour faire un

< input type="button" onclick="document.location='http://www.monsite.tld/mapage.php'" >

samorssou, il y a 10 ans

voila qui ce que j'ai fait

<a class="btn btn-primary" href="{{ action('GuardsController@update',$guard) }}">valider</a>
betaWeb, il y a 10 ans

Salut,

Lors de ton action, à quel moment envoies-tu les datas à modifier ?

samorssou, il y a 10 ans

voila ma fonction update

public function update($guard, \Illuminate\Contracts\Auth\Guard $auth) { $user=$auth->user()->id; $data=Guard::findOrFail($guard->id); $statut=\DB::table('users_guards')->where('user_id','=',$user)->pluck('annonceur'); if($statut==true){ $data1['statut_annonceur']=1; $data->update($data1); }elseif($statut==false) { $data1['statut_repondeur']=1; $data->update($data1); } return redirect(action('GuardsController@index'))->with('success', 'ta confirmation est bien passé'); }
samorssou, il y a 10 ans

j'ai pas bien compris ce exemple d'ajax sorry par exemple je veux passer en parametre l'objet qu'a été stocker dans un variable , comment je peux recuperer ça

betaWeb, il y a 10 ans

Salut,

Le souci est que, visiblement, tu essayes de faire passer un objet en URL query, or tu ne peux pas il faut soit encoder le paramètre dont tu as besoin (via urlencode() par ex.), soit passer par l'AJAX comme le suggère @MaMouT.

arnich, il y a 10 ans

c'est normal que tu sois redirigé vers l'accueil

return redirect(action('GuardsController@index'))

Vais un redirect vers ou tu veux etre redirigé ou alors tu peux aussi faire un render('vue')
Comme dis avant tu peux faire aussi en ajax

samorssou, il y a 10 ans

quelqu'un peux m'aider pour recuperer un variable php en utilisant ajax , merci

keulu, il y a 10 ans

ben en js (avec jQuery) ca va donner qqch comme ca

$.get( "ajax.php", function( data ) { alert( data ); });

t'as des methodes $.get, post, put, delete pour changer la facon d'envoyer tes données. ( http://api.jquery.com/category/ajax/ )

ensuite coté ajax.php

$ar = array( 'status' => 1, 'message' => "ok", ); echo json_encode($ar);

du coup, dans ton retour javascript, data va etre un tableau.

console.log(data['status']); // 1
console.log(data['message']); // ok

EDIT ::

Tu peux bien evidement envoyer des paramètres en GET et les récupérer avec un $_GET en php.

ex :

appeler ajax.php?customer_id=3&device_id=13 en javascript

et récupérer

$ar = array(
'customer_id' => $_GET['customer_id'],
'device_id' => $_GET['device_id']
);

Alexandre #lbac, il y a 10 ans

pour retourner une valeur json avec laravel :

return response()->json(['key' => 'value']);
Alexandre #lbac, il y a 10 ans
return response()->json(['object' => $object]);
MaMouT, il y a 10 ans
$.ajax({ url:url_du_post, type: "post", data: donnees.serialize(), success: function(data){ alert(data.object.valeur); => ça dépend du retour cf @SquallX }, error: function(xhr, status, error) { alert('erreur'); } });