php formulaire - Programmation
Marsh Posté le 24-07-2001 à 15:02:12
Pour répondre à ta question :
Oui, c'est possible !
Marsh Posté le 24-07-2001 à 15:24:17
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 !
Marsh Posté le 24-07-2001 à 15:30:57
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
Marsh Posté le 24-07-2001 à 16:01:19
fait des INPUT TYPE='HIDDEN' dans A et B et tu retrouveras ta variable dans C !
Marsh Posté le 24-07-2001 à 16:24:48
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>
Marsh Posté le 24-07-2001 à 16:31:16
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. . .
Marsh Posté le 24-07-2001 à 16:35:27
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
Marsh Posté le 24-07-2001 à 16:39:29
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...
Marsh Posté le 24-07-2001 à 16:53:27
j'ai enlever le header et il reste sur la page et il met qu'il rest des erreurs?
Marsh Posté le 24-07-2001 à 17:07:43
Ben c'est qu'il doit y avoir des erreurs alors
Marsh Posté le 24-07-2001 à 17:15:18
COMMENTUVEUXQUEJELESACHE
JAIPASTONCODESOUSLESYEUXNILEMESSAGEDERREUR
Marsh Posté le 24-07-2001 à 17:27:53
<?
/******************************************************************/
/* 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" );
?>
Marsh Posté le 25-07-2001 à 09:58:36
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] . "\">" );
?>
Marsh Posté le 25-07-2001 à 09:59:53
Attention de pas te mélanger les sommes :
$var_somme
$var_sommes
Marsh Posté le 25-07-2001 à 10:38:46
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
Marsh Posté le 25-07-2001 à 11:05:24
<BODY onload="document.forms[0].submit()>
Correction :
<BODY onload="document.forms[0].submit();">
ou
<BODY onload="return document.forms[0].submit();">
Marsh Posté le 24-07-2001 à 14:10:56
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