html quickform et redirection

Invité
Invité n'ayant pas de compte PHPfrance

04 févr. 2007, 17:55

Bonjour à tous,
J'ai utilisé html quickform pour construire un formulaire et ça marche bien.
Mon problème se trouve à la récupération des données saisies.

La méthode classique veut qu'on fasse ceci pour récupérer les données:
//mon formulaire construit avec quickform, méthode GET
....
$form->addElement('text', 'idLivre' , 'N° du livre  : ');    
...

//la récupération
if ($form->validate()) {
  echo $_GET['idLivre'];
}

Mon pb: Je voudrais rediriger les données vers une autre page avec des paramètres. J'ai donc créé une fonction de redirection
//fonction de redirection javascript
function js_redirect($direction)
{
    echo "<script type='text/javascript'>";
    echo "document.location.replace('". $direction ."');";
    echo "</script>";
}
Que j'appelle à la validation du formulaire:
if ($form->validate()) {
   $direction="index.php?page=edit_product&idLivre=". $_GET['idLivre];
   js_redirect($direction);
}
Résultat, la redirection ne fonctionne pas et les paramètres ne sont pas passés. J'ai essayé avec un redirection php, c'est pareil.
Comment faire pour faire cette redirection avec les données du formulaire?

Merci pour vos réponses.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

04 févr. 2007, 18:45

Salut,

Je ne connais pas quickform mais n'y aurait-il pas une fonction prévue pour changer l'action du formulaire pour aller sur cette page de traitement au lieu de crée une fonction toi même ?

Sinon il manque une apostrophe pour la variable GET (une erreur de copier/coller) Dans ce cas de figure tu devrais au moins pouvoir récupérer le contenu de "idLivre".
Si tu as plusieurs champs faudrait les ajouter lors de la redirection.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

04 févr. 2007, 19:02

effectivement il y a un paramètre à l'instanciation du formulaire qui permet de préciser le fichier de destination. Mais je suis mainentant face à un deuxième problème, tous les parammètres ne sont pas envoyés.
$direction="index.php?page=edit_product&idRecord=". $_GET['idRecord'] . "&idLivre=". $_GET['idLivre'];
$form = new HTML_QuickForm('formEditProd', 'post', $direction');
Il y a 3 paramètres dans ce code. $idRecord et $idLivre sont bien envoyés, mais pas $page...
L'url me renvoie
index.php?idRecord=....
au lieu de
index.php?page=edit_product&idRecord=....

J'ai essayé de générer la valeur de $page en php comme pour les autres variables, ça ne change rien.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

04 févr. 2007, 23:32

vu comme ça je ne vois pas de souci :-k

étonnant qu'il sucre une variable comme ça :?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute