|
Dernière réponse | |
---|---|
Sujet : php formulaire | |
bob2674 | merci de ton aide, la cela marche |
Aperçu |
---|
Vue Rapide de la discussion |
---|
bob2674 | merci de ton aide, la cela marche |
Mara's dad | <BODY onload="document.forms[0].submit()>
Correction : <BODY onload="document.forms[0].submit();"> ou <BODY onload="return document.forms[0].submit();"> |
bob2674 | j'ai mis comme t um'as dit la deuxieme version mais il ne passe pas à la page tableauaffiche.php
il reste sur formulairetemp.php et il met met dans la barre en bas du naviguateur un triangle jaune qui met dit qu'il reste des erreurs sur cette page je t'envoie la capture d'ecran sur ta boite |
Mara's dad | Attention de pas te mélanger les sommes :
$var_somme $var_sommes :pt1cable: |
Mara's dad | Je sais toujours pas quel message d'erreur tu as si tu en as un !
Si $var_somme est un tableau, tu peux pas faire çà : <INPUT TYPE=HIDDEN NAME="var_sommes" VALUE="<?php echo $var_somme; ?>"> ! ! ! ! ! Alors, soit tu sérialise le tableau pour le désérialiser après, soit tu fait comme çà : <?php for( $i = 0; $i < count( $var_somme ); $i ) echo( "<INPUT TYPE=HIDDEN NAME=\"var_sommes[$i]\" VALUE=\"$var_somme[$i]\">" ); ?> A condition que ton tableau ne soit qu'à une dimension, sinon : <?php for( $i = 0; $i < count( $var_somme ); $i ) for( $j = 0; $j < count( $var_somme[$i] ); $j ) echo( "<INPUT TYPE=HIDDEN NAME=\"var_sommes[$i][$j]\" VALUE=\"" . $var_somme[$i][$j] . "\">" ); ?> |
bob2674 | UP |
bob2674 | savez vous? |
bob2674 | $var_somme est un tableau aussi |
bob2674 | <?
/******************************************************************/ /* fichier associe à cette page */ /******************************************************************/ //permet d'associer ce tableau à cette page include "tabcorresp.php"; /******************************************************************/ /* concatenation de tous les champs selectionner */ /* et mise en forme pour le select */ /******************************************************************/ /* le tableau var_affichee contient les indices du tableau "tabcorresp" qui ont été coché par l'utilisateur */ $champs=""; for ($i = 0; $i < count($var_affichee); $i++) { $champs=$champs.",".$var_affichee[$i]; } // fonction permet de retirer le premier caractère de la chaine $champs = substr("$champs",1); /******************************************************************/ /* mise en forme du WHERE suivant les valeurs */ /* des champs entrées */ /******************************************************************/ /* La fontion "foreach" permet de parcourir le tableau (tabcorresp) */ /* La variable ind correspond à l'indice du tableau et la variable val correspond au valeur du tableau suivant l'indice */ /*le tableau tabuni correspond aux valeurs selectionnées une à une */ /*le tableau tabdeb correspond aux valeurs de debut */ /*le tableau tabfin correspond aux valeurs de fin */ $clause=""; foreach($tabcor[0] as $ind => $val ) { //test si un caractère a été entré dans les zones de textes correspondant au champ $ind if (($tabdeb[$ind]) or ($tabuni[$ind])) { //permet de connaitre si une clause existe $requete_clause=TRUE; $clause=$clause." AND ("; $premier_or=TRUE; //cas où l'utilisateur a fait une requete unique if ($tabuni[$ind]) { $clausetemp= explode (",","$tabuni[$ind]" ); for ($i = 0; $i < count($clausetemp); $i++) { if (!($premier_or)) $clause=$clause." OR "; if ($tabcor[1][$ind]=="numerique" ) $clause=$clause.$ind."=".$clausetemp[$i]; else $clause=$clause.$ind."="."'".$clausetemp[$i]."'"; $premier_or=FALSE; } } //cas où l'utilisateur a fait une requete avec un debut et une fin if ($tabdeb[$ind]) { while ($tabdeb[$ind] <= $tabfin[$ind]) { if (!($premier_or)) $clause=$clause." OR "; if ($tabcor[1][$ind]=="numerique" ) $clause=$clause.$ind."=".$tabdeb[$ind]; else $clause=$clause.$ind."="."'".$tabdeb[$ind]."'"; $tabdeb[$ind]++; $premier_or=FALSE; } } $clause=$clause." )"; } } if ($requete_clause) // fonction permet de retirer des caractères de la chaine (pour le and) $clause = "WHERE ".substr("$clause", 4); /******************************************************************/ /* mise en forme du ORDER BY suivant les valeurs */ /* d'ordre de trie entrées */ /******************************************************************/ //boolean permettant de connaitre si order by existe $requete_order=FALSE; //mise en place d'un tableau temporaire foreach($tabcor[0] as $ind => $val ) { if (!($tabtrie[$ind]=='')) { $tabtrietemp[$tabtrie[$ind]]=$ind; $requete_order=TRUE; } } //création du ORDER BY $order=""; for ($i = 1; $i <= count($tabtrietemp); $i++) { $order=$order.",".$tabtrietemp[$i]; } if ($requete_order) // fonction permet de retirer le premier caractère de la chaine $order = "ORDER BY ".substr("$order",1); /******************************************************************/ /* requete SQL */ /******************************************************************/ $QUERYs=" SELECT $champs FROM $joint $clause $order"; //permet d'enlever les espaces avant et après du QUERYs $QUERYs= trim ($QUERYs); $QUERYs = preg_replace("/(\n|\r\n)/","", $QUERYs); /******************************************************************/ /* pour la somme */ /******************************************************************/ /* le tableau var_somme contient les numeros des colonnes qui ont été coché par l'utilisateur pour faire la somme */ ?> <BODY onload="document.forms[0].submit()> <FORM action='tableauaffiche.php' method='post'> <INPUT TYPE=HIDDEN NAME="var_sommes" VALUE="<?php echo $var_somme; ?>"> </FORM> </BODY> <? //header("Location: tableauaffiche.php" ); //setcookie("QUERY","$QUERYs" ); //setcookie("var_sommes","$var_somme" ); ?> |
Mara's dad | COMMENTUVEUXQUEJELESACHE :gun: JAIPASTONCODESOUSLESYEUXNILEMESSAGEDERREUR :fou: :fou: :fou: |
bob2674 | ça je m'en doute mais koi? |
Mara's dad | Ben c'est qu'il doit y avoir des erreurs alors :lol: |
bob2674 | j'ai enlever le header et il reste sur la page et il met qu'il rest des erreurs? |
Mara's dad | Ce message veut dire qu'en ligne 169 tu essaye d'envoyer un header, ce qui n'est pas possible parce-que il y a un output en ligne 162 ! ! !
L'output, c'est un echo, print, ou du HTML... |
bob2674 | j'ai cette erreur là
Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\23072001\formulairetemp.php:162) in c:\program files\easyphp\www\23072001\formulairetemp.php on line 169 |
Mara's dad | Dans cet exemple, la page B fait un allez retour pour rien vers le client. (Sauf s'il y a des infos à récupérer en javascript par exemple, mais çà n'a pas l'aire d'être le cas).
B aurrait pu simplement faire sont traitement SANS OUTPUT, et finir par un : header( "location:c.php?toto=$toto" ); Dans ce cas, y'a pas d'aller retour vers le client pour la page B, qui se contente de rediriger vers C, mais toto sera visible dans l'url, ce que tu ne veux pas ! Je cherche un moyen de passer par POST avec les headers. . . |
Mara's dad | Donc, dans la page B :
<?php ... Traitements ... ?> <BODY onload="document.forms[0].submit()> <FORM> <INPUT TYPE=HIDDEN NAME="toto" VALUE="<?php echo $toto; ?>"> </FORM> </BODY> |
Cyber666 | fait des INPUT TYPE='HIDDEN' dans A et B et tu retrouveras ta variable dans C ! |
bob2674 | J'ai une page A qui possède un formulaire l'utilisateur appuie sur un bouton et la page B est lance des opérations sont faites sur cette page mais c'est juste une page de transition. Une page C s'ouvre après
l'utilisateur ne voit que la page A et C s'ouvrir Donc mon problème c'ets que dans le formulaire A je voudrais utiliser une variable dans la page C |
Mara's dad | Donc t'as 2 pages, A et B.
A contient un formulaire. Dans ce formulaire un champ que doit récupérer B. Tu veux que ce soit automatique ! C'est là que je comprend pas ! Automatique, pour moi ca veut dire que dés que A est chargée, on apelle B ? C'est çà ? Sinon, y'a forcément une intervention de l'utilisateur à un moment. Laquelle ? Détaille un peu la cinématique de tes pages ! |
bob2674 | lol
et on fait comment? |
Mara's dad | Pour répondre à ta question :
Oui, c'est possible ! |
bob2674 | j'ai une variable qui vient d'un formualire et je voudrais l'envoyer cette variable sur une autre page sans passer par url ou cookies. Est ce possible?
Ce que je voudrais c'est envoye cette variable grace à un formulaire qui se lancerait automatiquement est ce possible? merci |