Page 1 sur 1

html quickform et redirection

Posté : 04 févr. 2007, 17:55
par Invité
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.

Posté : 04 févr. 2007, 18:45
par Truc
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.

Posté : 04 févr. 2007, 19:02
par Invité
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.

Posté : 04 févr. 2007, 23:32
par Truc
vu comme ça je ne vois pas de souci :-k

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