Le 29/07/2009 15:16, Eric Luyckx a écrit :
cool ça marche merci matthieu
de rien mais tu as plein d'erreurs !!!
<form action='#SELF&var_mode=recalcul' method='post' >
NON : <form action='#ENV{action}' method='post' >
un recalcul est hyper gourmand et n'a rien à faire ici. Si tu veux rafraichir ton formulaire, au pire, tu mets #CACHE{0}, mais tu ne devrait pas en avoir besoin je crois.
Si tu veux rafraichir toute ta page et pas uniquement le formulaire, il ne faut pas l'encadrer d'une classe ajax…
#ACTION_FORMULAIRE{#ENV{action}}
<label>Ajouter le mot</label>
<input name="id_mot" type="text" value="" size="5" />
<input type="hidden" name="id_auteur" value="<?php echo
$_GET['id_auteur'] ?>" />
NON : on ne récupère pas des valeurs comme ceci : il faut les envoyer par la fonction charger et récupérer #ENV{id_auteur}. Cependant, tu vas voir que ce hidden est inutile plus loin.
<input type='submit' name='ok' value='ok' />
</form>
php :
<?php
// charger les variables
function formulaires_mots_auteur_charger_dist(){
$valeurs = array('id_mot'=>'','id_auteur'=>'');
return $valeurs;
}
PEUT mieux faire : appeler ton formulaire avec #FORMULAIRE_MOTS_AUTEUR{#ID_AUTEUR}
et récupérer function formulaires_mots_auteur_charger_dist($id_auteur='')
puis transmettre :
$valeurs = array('id_mot'=>'','id_auteur'=>$id_auteur);
plus besoin du hidden dans ce cas.
// verification : pas de vérification
verifier que id_mot est bien un nombre et un id valide
// traiter
function formulaires_mots_auteur_traiter_dist(){
$mot = _request('id_mot');
$auteur = _request('id_auteur');
oui, mais mieux :
function formulaires_mots_auteur_traiter_dist($id_auteur=''){
$mot = _request('id_mot');
sql_insertq('spip_mots_auteurs', array('id_mot' => $mot,'id_auteur' => $id_auteur));
sql_insertq('spip_mots_auteurs', array('id_mot' => $mot,'id_auteur' =>
$auteur));
set_request('id_mot',null);
set_request('id_auteu',null);
FAUTE : 'id_auteu'. et celui-ci est inutile
$valeurs = null;
inutile, puis :
NON : un traitement doit retourner un tableau avec un message de réussite (ou echec) et si on peut l'éditer de nouveau…
}
?>