Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3590 connectés 

 


Dernière réponse
Sujet : php formulaire
bob2674 merci de ton aide, la cela marche

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


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

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)