revenir sur l enregistrement en cours ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : revenir sur l enregistrement en cours ?

par donny » 22 juin 2005, 10:24

j ai compris mais dans la value de mon select il y a des nombre qui von tde 1 à 10 par exemple et dans ma table l identifiant peut etre egal à 25

c est^pour cela que j avais fait un truc dans ce genre
<? 

if(isset($_GET['zz'])) 
{ 

  if(isset($_GET['numcom'])) 
  { 
     $_SESSION['com']=$_GET['numcom']; 
  } 
                             
       echo "<h1>".$_SESSION['com']."</h1>"; 



$sql="insert into acheter ( numfournisseur,numconso,boncommande, date,quantite,prix) values  ( ".$_GET['fourn'].", ".$_GET['ref'].", '".$_GET['numcom']."','".$_GET['datec']."',".$_GET['quantitec'].",".$_GET['prixc'].")"; 

echo "<b>".$sql."</b>"; 
$result=pg_query($sql); 
     
        if($result) 
        { 
          echo "<script>alert('Insertion reussi !');</script>"; 
           
    }else{ 
         
          echo "<script>alert('Echec Insertion !');</script>"; 

             } 

   
for($p=0; $p<count($liste_etat); $p++) 
    { 
        
       if($liste_etat[$p]==$_SESSION['com']) 
      { 
          $z=$p; 
          $z2=$liste_etat[$p]; 
          $_SESSION['id2']=$z; 
        
      } 
    } 

  echo "p = ".$z; 
  echo "comm = ".$z2; 

     //echo "<h1>".$_SESSION['id2']."</h1>"; 

echo "<script>javascript:location.href='".$_SERVER['PHP_SELF']."?max=' + ".$_SESSION['max']." + '&id='+ ".$_SESSION['id2']."</script>";   

} 

echo "p = ".$z; 
echo "comm = ".$_SESSION['id2']; 

?> 

je recupere dans $_SESSION['id2'] l index $p du tableau comme cela je peu le passer directement dans l url
echo "<script>javascript:location.href='".$_SERVER['PHP_SELF']."?max=' + ".$_SESSION['max']." + '&id='+ ".$_SESSION['id2']."</script>";   

et sa me positionne sur le bonne enregistrement
mais sa fonctionne que lorsqu on a deja saisi une commande, je pense que sa viens du faite que le tableau n a pas été encore creer à ce moment.
Je me dit que peut etre je devrai refaire la même requete comme dans le select et creer un autre tableau comme cela j aurai directement les bon $p

par VaN » 22 juin 2005, 09:33

Ok, je te montre comment faire :


$sql_max = "SELECT MAX(id_photo) AS id FROM photos";
$query_max = mysql_query($sql_max);
$result_max = mysql_fetch_array($query_max);
$id = $result_max['id'];

et ensuite, lors de ta boucle qui crée le select, tu fais juste un test sur l'id, si il est egal au result_max['id'], echo "selected".

dis moi si tu ne comprend pas quelquechose

par donny » 22 juin 2005, 08:57

en faite il rempli le formulaire,et dans ce formulaire il y a un select qui est alimenter a partir d une de mes tables, et je voudrais que quand il valide alors le formulaire (et donc le select) ce place sur cet enregistrement qu il viens de valider.
Le truc est que dans mon select les enregistrement son classer par ordre croissant ce qui fait que quand je valide, le select ce place automatiquement sur le premiere element

par VaN » 22 juin 2005, 08:35

si j'ai bien compris ce que tu veux faire :

un utilisateur remplit un formulaire. puis il click sur un lien qui l'emmene sur une autre page, ou tu affiche un select qui liste toutes les entrées de la base. et tu aimerais que ce select affiche par defaut le dernier enregistrement de la base ? c'est ça ?

par donny » 22 juin 2005, 08:08

je doute que sa vienne quand je saisi un nouvel enregistrement, il est mis dans le tableau mais vu qu il faut charger la page pour remplir le tableau alimenter dans la liste deroulante des bon de commande, alors il y a un temps de decallage ce qui explique pourquoi sa ne fonctionne pas au premier coup. ?

Est ce possible ?

par donny » 21 juin 2005, 10:18

si quelqu un voi un ce que je veux faire voila mon code
mais je doute que sa vienne quand je saisi un nouvel enregistrement, il est mis dans le tableau mais vu qu il faut charger la page pour remplir le tableau alimenter dans la liste deroulante des bon de commande, alors il y a un temps de decallage ce qui explique pourquoi sa ne fonctionne pas au premier coup. ?
<?php 
	session_start(); 
?>
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">

function effacer()
{


document.acheter.cmd.value="";
document.acheter.fourn.value="";
document.acheter.numcom.value="";
document.acheter.date1.value="<? echo date("d/m/Y"); ?>";

}

</SCRIPT>



</head>
 


<body>


<?php 
// on se connecte a postgres
include("connexion.inc.php");
//if (isset($_GET['numserie'])){
//$_SESSION['seri']=$_GET['numserie'];
//}
?>


<form action="<? $_SERVER['PHP_SELF'] ?>" name="acheter" method="GET"> 

<? if(!isset($_GET['max']))
{ 
  $result = pg_query("select distinct(boncommande),date,numfournisseur from acheter order by boncommande"); 
  $max = pg_num_rows($result) - 1;//la numérotaion commence à 0 
  $suivant = 1; 
  $precedent = -1; 
  $id = 0; 
}
else 
{ 
$max = intval($_GET['max']); 
$id = intval($_GET['id']); 
$suivant = $id + 1; 
$precedent = $id - 1; 
} 

$sql="select distinct(boncommande),date,numfournisseur from acheter order by boncommande LIMIT 1 OFFSET " . $id; 


$result = pg_query($sql) or die('erreur'); 

$row = pg_fetch_row($result); 

if(isset($_GET['id']))
{
  $_SESSION['id']=$id;
}
else
{
  $_SESSION['id']=$id;
}

$_SESSION['max']=$max;

echo " L ID est : ".$_SESSION['id']."<br>";
echo " Le max est : ".$_SESSION['max'];
?> 


<table>




<tr>

<?//<input type="hidden" name="t1" value="<?php echo $row[0]; ?>"> ?>

	
	<td><i>Bon commande</i></td>	
	<td><select name="cmd"  onChange="location.href='<?php echo $_SERVER['PHP_SELF'] ;?>?max=' + <? echo $_SESSION['max']; ?> + '&id='+ this.value;alert(this.options[this.selectedIndex].text); ">


<? 
$j=0;
$liste_etat = array(); 

$sql1="select distinct(boncommande) from acheter order by boncommande";

$res1=pg_query($sql1);

while($list1=pg_fetch_array($res1))
{
?> 

<option value="<? echo $j;  ?>" <? if($list1['boncommande'] == $row[0]){echo(" selected=\"selected\"");}?> id="<? echo $j ; ?>" ><? echo $list1['boncommande'];  ?></option>

<?
$liste_etat[$j]=$list1['boncommande'];
$j++;
}
?>

</select>
	</td>
		
	<td><i>Date</i></td>
	<td><input type="text" name="date1" value="<?php echo date('d/m/Y', strtotime($row[1])); ?>"  /></td> 
</tr> 

<tr>
	<td><i>Bon commande</i></td>
	<td><input type="text" name="numcom" value="<?php echo $liste_etat[$id]; $_SESSION['cd']=$liste_etat[$id];?>"></td>
        
<? echo "<h1> Bon co ".$_SESSION['cd']."</h1>"; ?>

</tr>

<tr>
	<td><i>Fournisseur</i></td>
	<td><select name="fourn">


<? 
$sql1="select societe,numfournisseur from fournisseurs order by societe";
$res1=pg_query($sql1);

while($list1=pg_fetch_array($res1))
{
?> 

<option value="<? echo $list1['numfournisseur'];  ?>" <? if($list1['numfournisseur'] == $row[2]){echo(" selected=\"selected\"");}?>><? echo $list1['societe'];  ?></option>

<?
}
?>

</select>
	</td>

</tr>



</table> 



<?php $deb=$max-$max; 
echo "<a href=\"acheter.php?max=" . $max . "&id=" . $deb . "\">DEBUT</a>  "; 

if($precedent != -1) 
echo "  <a href=\"acheter.php?max=" . $max . "&id=" . $precedent . "\">PRECEDENT</a>  "; 

if($suivant <= $max) 
echo "  <a href=\"acheter.php?max=" . $max . "&id=" . $suivant .  "\">SUIVANT</a>  "; 

echo "  <a href=\"acheter.php?max=" . $max . "&id=" . $max . "\">FIN</a>  "; 
?> 
<br>
<br>
<input type="submit" name="Modifier" value="Modifier" onclick=" return confirm('Vraiment modifier?')">
<input type="submit" name="mab" value="Effacer" >  
<input type="submit" name="Nouveau" value="Nouveau" onclick=" return confirm('Vraiment enregistrer?')"> 

<? if(isset($_GET['mab']))
{

echo "<script>javascript:effacer();</script>";

}



if(!isset($_GET['mab']))
{
$sql="select refcontructeur,date,acheter.quantite,prix from acheter,consommable where                 consommable.numconso=acheter.numconso and boncommande ='".$row[0]."'  order by boncommande ";


echo $sql;

$res=pg_query($sql);
?>

<table border="1" >

<tr>
    <th style="display:none">a</th>
    <th style="display:none">b</th>
    <th>Consommable</th>
    <th>Date</th>
    <th>Quantite</th>    
    <th>Prix</th>
</tr>


<?
$i=0;
while($list=pg_fetch_array($res))
{
?>

<tr class="white" onClick="blok(this, 'radio<? echo  $i ; ?>','radio2<? echo  $i ; ?>' )">
    <td style="display:none"><input type="radio" name="a" id="radio<? echo $i ;?>" value="<? echo $list['numserie'];?>"></td>
    <td style="display:none"><input type="radio" name="b" id="radio2<? echo $i ;?>" value="<? echo $list['etat'];?>"></td>
    <td><? echo $list['refcontructeur']; ?></td>
    <td><? echo date('d/m/Y', strtotime($list['date'])); ?></td>
    <td><? echo $list['quantite']; ?></td>    
    <td><? echo $list['prix']; ?></td>
</tr>


<?
$i=$i+1;
}
?>

<tr class="white" onClick="blok(this, 'radio<? echo  $i ; ?>','radio2<? echo  $i ; ?>' )">
    <td style="display:none"><input type="radio" name="a" id="radio<? echo $i ;?>" value="<? echo $list['numserie'];?>"></td>
    <td style="display:none"><input type="radio" name="b" id="radio2<? echo $i ;?>" value="<? echo $list['etat'];?>"></td>
    <td>
    <select name="ref">
    <?
    $sql="select numconso,refcontructeur from consommable order by refcontructeur";
    $result=pg_query($sql);
    while($list=pg_fetch_array($result)){
    ?>
    <option value="<? echo $list['numconso']; ?>"  ><? echo $list['refcontructeur'] ;?></option>

<?
}
?>
    </select>
    </td>
    <td><input type="text"  name="datec" value="<? echo date("d/m/Y"); ?>"></td>
    <td><input type="text" name="quantitec" value=""></td>    
    <td><input type="text" name="prixc" value=""></td>
</tr>




</table>

<?
}
else
{
?>

<table border="1" >

<tr>
    <th style="display:none">a</th>
    <th style="display:none">b</th>
    <th>Consommable</th>
    <th>Date</th>
    <th>Quantite</th>    
    <th>Prix</th>
</tr>

<tr class="white" onClick="blok(this, 'radio<? echo  $i ; ?>','radio2<? echo  $i ; ?>' )">
    <td style="display:none"><input type="radio" name="a" id="radio<? echo $i ;?>" value="<? echo $list['numserie'];?>"></td>
    <td style="display:none"><input type="radio" name="b" id="radio2<? echo $i ;?>" value="<? echo $list['etat'];?>"></td>
    <td>
    <select name="ref">
    <?
    $sql="select numconso,refcontructeur from consommable order by refcontructeur";
    $result=pg_query($sql);
    while($list=pg_fetch_array($result)){
    ?>
    <option value="<? echo $list['numconso']; ?>"  ><? echo $list['refcontructeur'] ;?></option>
    
<?
}
?>
    </select>
    
    </td>
    
    <td><input type="text"  name="datec" value="<? echo date("d/m/Y"); ?>"></td>
    <td><input type="text" name="quantitec" value=""></td>    
    <td><input type="text" name="prixc" value=""></td>
</tr>

</table>

<?
}
?>


<br>
<br>

<input type="submit" name="ajout" value="Ajouter" >

<input type="submit" name="zz" value="zz">

<?

if(isset($_GET['zz']))
{

  if(isset($_GET['numcom']))
  {
     $_SESSION['com']=$_GET['numcom'];
  }
                            
       echo "<h1>".$_SESSION['com']."</h1>";
 
 
 
$sql="insert into acheter ( numfournisseur,numconso,boncommande, date,quantite,prix) values  ( ".$_GET['fourn'].", ".$_GET['ref'].", '".$_GET['numcom']."','".$_GET['datec']."',".$_GET['quantitec'].",".$_GET['prixc'].")";

 echo "<b>".$sql."</b>";
$result=pg_query($sql);
 	
        if($result)
        {
          echo "<script>alert('Insertion reussi !');</script>";
          
	}else{
        
          echo "<script>alert('Echec Insertion !');</script>";

             }

  
for($p=0; $p<count($liste_etat); $p++) 
    { 
       
       if($liste_etat[$p]==$_SESSION['com'])
      {
          $z=$p;
          $z2=$liste_etat[$p];
          $_SESSION['id2']=$z;
       
      }
    } 
 
  echo "p = ".$z;
  echo "comm = ".$z2;

     //echo "<h1>".$_SESSION['id2']."</h1>";

echo "<script>javascript:location.href='".$_SERVER['PHP_SELF']."?max=' + ".$_SESSION['max']." + '&id='+ ".$_SESSION['id2']."</script>";  

}

echo "p = ".$z;
echo "comm = ".$_SESSION['id2'];

?>

 <?
 
 
 
 echo count($liste_etat);
 
 for($p=0; $p<count($liste_etat); $p++) 
    { 
        echo "resu : ".$p." = ".$liste_etat[$p]."<br>";
        if($liste_etat[$p]==$_SESSION['com']){
        echo "<h2>".$liste_etat[$p]."</h2>";
        echo "<b> Le p = ".$p."</b>";
    }
    } 


?>
</form> 
</body>
</html>

par Cyrano » 21 juin 2005, 10:06

Pas tellement, il doit me manquer des éléments, mais je ne vois pas comment est structuré l'ensemble de ton formulaire.

J'espère que quelqu'un d'autre pourra prendre le relai, je ne pourrai plus suivre beaucoup dans la journée..

par donny » 21 juin 2005, 10:01

en theorie le 2eme bout de code devrai quand je saisi une ligne du tableau
à savoir quantité et prix...et que je clique sur le bouton ,m enregistrer cela dans la table et revenir sur la page sur le meme enregistrement.

Mais ce qu il se passe est que quand je saisi une nouvel commande ,puis une ligne de la commande dans la tableau, et que je valide , mon formulaire se replace au 1er bon de commande de ma liste deroulante.

Mais si je choisi dans la liste deroulante la nouvel commande que je viens de saisir et que je rajoute une nouvel ligne dans le tableau (donc un nouveau produit commander) à ce moment la quand je clique sur valider alors mon formulaire ce repositionne sur cette enregistrement et ne se positionne pas sur le 1er bon de commande de la liste deroulante .

C est plus clair?

par Cyrano » 21 juin 2005, 09:42

Mouais, c'est presque ça:
premier bout de code:
  <td><i>Bon commande</i></td>    
  <td>
    <select name="cmd" onChange="location.href='<?php echo $_SERVER['PHP_SELF'] ;?>?max=' + <? echo $_SESSION['max']; ?> + '&id='+ this.value;alert(this.options[this.selectedIndex].text); ">
<?php
$j=0;
$liste_etat = array();
$sql1 = "SELECT DISTINCT(boncommande) FROM acheter ORDER BY boncommande";
$res1=pg_query($sql1);
while($list1=pg_fetch_array($res1))
{
    ?>
      <option value="<? echo $j;  ?>" <?php echo($list1['boncommande'] == $row[0])?(" selected=\"selected\""):null;?> id="<? echo $j ; ?>" ><? echo $list1['boncommande'];  ?></option>
    <?
    $liste_etat[$j]=$list1['boncommande'];
    $j++;
}
?>
    </select>
  </td>
Second code :
<?
if(isset($_GET['zz']))
{
    if(isset($_GET['numcom']))
    {
        $_SESSION['com']=$_GET['numcom'];
    }
    echo "<h1>".$_SESSION['com']."</h1>";
    $sql="INSERT INTO acheter ( numfournisseur,numconso,boncommande, date,quantite,prix) ".
    "VALUES  (".$_GET['fourn'].", ".$_GET['ref'].", '".$_GET['numcom']."','".$_GET['datec']."',".$_GET['quantitec'].",".$_GET['prixc'].")";

    echo "<b>".$sql."</b>";
    $result=pg_query($sql);

    echo ($result)?"<script>alert('Insertion reussie !');</script>":"<script>alert('Echec Insertion !');</script>";
    for($p=0; $p<count($liste_etat); $p++)
    {
        if($liste_etat[$p]==$_SESSION['com'])
        {
            $z=$p;
            $z2=$liste_etat[$p];
            $_SESSION['id2']=$z;
        }
    }
    echo "p = ".$z;
    echo "comm = ".$z2;
    //echo "<h1>".$_SESSION['id2']."</h1>";
    echo "<script>javascript:location.href='".$_SERVER['PHP_SELF']."?max=' + ".$_SESSION['max']." + '&id='+ ".$_SESSION['id2']."</script>";
}
echo "p = ".$z;
echo "comm = ".$_SESSION['id2'];
echo count($liste_etat);

for($p=0; $p<count($liste_etat); $p++)
{
    echo "resu : ".$p." = ".$liste_etat[$p]."<br>";
    if($liste_etat[$p]==$_SESSION['com'])
    {
        echo "<h2>".$liste_etat[$p]."</h2>";
        echo "<b> Le p = ".$p."</b>";
    }
}
?>
Maintenant, je ne comprends toujours pas ce que tu veux dire par "quand on saisi d abord un enregistrement et qu ensuite on se positionne dessus."

par donny » 21 juin 2005, 09:26

voila
<?

if(isset($_GET['zz']))
{

  if(isset($_GET['numcom']))
  {
     $_SESSION['com']=$_GET['numcom'];
  }
                            
       echo "<h1>".$_SESSION['com']."</h1>";
 
 
 
$sql="insert into acheter ( numfournisseur,numconso,boncommande, date,quantite,prix) values  ( ".$_GET['fourn'].", ".$_GET['ref'].", '".$_GET['numcom']."','".$_GET['datec']."',".$_GET['quantitec'].",".$_GET['prixc'].")";

 echo "<b>".$sql."</b>";
$result=pg_query($sql);
 	
        if($result)
        {
          echo "<script>alert('Insertion reussi !');</script>";
          
	}else{
        
          echo "<script>alert('Echec Insertion !');</script>";

             }

  
for($p=0; $p<count($liste_etat); $p++) 
    { 
       
       if($liste_etat[$p]==$_SESSION['com'])
      {
          $z=$p;
          $z2=$liste_etat[$p];
          $_SESSION['id2']=$z;
       
      }
    } 
 
  echo "p = ".$z;
  echo "comm = ".$z2;

     //echo "<h1>".$_SESSION['id2']."</h1>";

echo "<script>javascript:location.href='".$_SERVER['PHP_SELF']."?max=' + ".$_SESSION['max']." + '&id='+ ".$_SESSION['id2']."</script>";  

}

echo "p = ".$z;
echo "comm = ".$_SESSION['id2'];

?>

 <?
 
 
 
 echo count($liste_etat);
 
 for($p=0; $p<count($liste_etat); $p++) 
    { 
        echo "resu : ".$p." = ".$liste_etat[$p]."<br>";
        if($liste_etat[$p]==$_SESSION['com']){
        echo "<h2>".$liste_etat[$p]."</h2>";
        echo "<b> Le p = ".$p."</b>";
    }
    } 


?>

par Cyrano » 21 juin 2005, 09:16

grrrrrr, remets moi ce code en ordre avec une indentation et supprime un paquet de lignes vides inutiles: c'est fatigant à suivre ton programme. Regarde attentivement ma signature, tu comprendras mieux ce que je veux dire.

par donny » 21 juin 2005, 09:02

je peux rajouter, d autre chose dans mon menu

<td><i>Bon commande</i></td>	
	<td><select name="cmd"  onChange="location.href='<?php echo $_SERVER['PHP_SELF'] ;?>?max=' + <? echo $_SESSION['max']; ?> + '&id='+ this.value;alert(this.options[this.selectedIndex].text); ">


<? 
$j=0;
$liste_etat = array(); 
$sql1="select distinct(boncommande) from acheter order by boncommande";
$res1=pg_query($sql1);
while($list1=pg_fetch_array($res1)){
?> 

<option value="<? echo $j;  ?>" <? if($list1['boncommande'] == $row[0]){echo(" selected=\"selected\"");}?> id="<? echo $j ; ?>" ><? echo $list1['boncommande'];  ?></option>

<?
$liste_etat[$j]=$list1['boncommande'];
$j++;
}
?>

</select>
	</td>

c est pour cela que j ai fait ce code
dans la variable de session id2 i ly a le bon numero mais il ne fonctionne que quand on saisi d abord un enregistrement et qu ensuite on se positionne dessus.
Pourtant j enregistre d abord la commande dans la base donc automatiquement elle se met dans la liste deroulante et j ai le bon numero ???
if(isset($_GET['zz'])){
//echo "<script>javascript:location.href='".$_SERVER['PHP_SELF']."?max=' + ".$_SESSION['max']." + '&id='+ //".$_SESSION['max']."</script>";	

  if(isset($_GET['numcom'])){
     $_SESSION['com']=$_GET['numcom'];
                            }
                            
 echo "<h1>".$_SESSION['com']."</h1>";
 
 
 
  $sql="insert into acheter ( numfournisseur,numconso,boncommande, date,quantite,prix) values  ( ".$_GET['fourn'].", ".$_GET['ref'].", '".$_GET['numcom']."','".$_GET['datec']."',".$_GET['quantitec'].",".$_GET['prixc'].")";



 echo "<b>".$sql."</b>";
             $result=pg_query($sql);
 	if($result){
	     
 		echo "<script>alert('Insertion reussi !');</script>";
	}else{

 		echo "<script>alert('Echec Insertion !');</script>";

		}

 
 
 
for($p=0; $p<count($liste_etat); $p++) 
    { 
    
      
       if($liste_etat[$p]==$_SESSION['com']){
       $z=$p;
        $z2=$liste_etat[$p];
        $_SESSION['id2']=$z;
       
    }
    } 
 
    echo "p = ".$z;
    echo "comm = ".$z2;
     //echo "<h1>".$_SESSION['id2']."</h1>";
 echo "<script>javascript:location.href='".$_SERVER['PHP_SELF']."?max=' + ".$_SESSION['max']." + '&id='+ ".$_SESSION['id2']."</script>";  
}
echo "p = ".$z;
    echo "comm = ".$_SESSION['id2'];

par Cyrano » 21 juin 2005, 08:43

Salut,
je ne saisis pas grand chose, mais je crois bien que le problème est dans ton formulaire. Je ne vois pas vraiment bien le rapport avec ce bout de code.

Petite note: pour t'y retrouver, essaye de prendre la bonne habitude de correctement indenter ton code et de limiter le nombre de ligne vide, il ne sert à rien d'étaler un code. Le même remis en forme:
<?
if(isset($_GET['zz']))
{
    //echo "<script>javascript:location.href = '".$_SERVER['PHP_SELF']."?max = ' + ".$_SESSION['max']." + '&id = '+ //".$_SESSION['max']."</script>";
    if(isset($_GET['numcom']))
    {
        $_SESSION['com'] = $_GET['numcom'];
        echo "<h1>".$_SESSION['com']."</h1>";
        $sql = "insert into acheter ( numfournisseur,numconso,boncommande, date,quantite,prix) values  ( ".$_GET['fourn'].", ".$_GET['ref'].", '".$_GET['numcom']."','".$_GET['datec']."',".$_GET['quantitec'].",".$_GET['prixc'].")";

        echo "<b>".$sql."</b>";
        $result = pg_query($sql);
        echo $result ? "<script>alert('Insertion reussi !');</script>":"<script>alert('Echec Insertion !');</script>";

        for($p = 0; $p<count($liste_etat); $p++)
        {
            if($liste_etat[$p] == $_SESSION['com'])
            {
                $z  =  $p;
                $z2 = $liste_etat[$p];
                $_SESSION['id2'] = $z;
            }
        }
        echo "<script>javascript:location.href = '".$_SERVER['PHP_SELF']."?max = ' + ".$_SESSION['max']." + '&id = '+ ".$_SESSION['id2']."</script>";
    }
Vu tel quel, il manque une accolade de fermeture.

Pour que ton formulaire affiche les même valeurs au rechargement de la page lorsque tu valides, il faut que ce soit indiqué dans le formulaire dans les éléments: selected dans les listes déroulantes par exemple.

exemple, tu as une liste "choix" par exemple et un formulaire en méthode get, tu fais:
<select name="choix">
  <option value="xyz1"<?php echo((isset($_GET['choix']) && $_GET['choix'] == "xyz1")?" selected=\"selected\"":null); ?>>xyz1</option>
  <option value="xyz2"<?php echo((isset($_GET['choix']) && $_GET['choix'] == "xyz2")?" selected=\"selected\"":null); ?>>xyz2</option>
  <option value="xyz3"<?php echo((isset($_GET['choix']) && $_GET['choix'] == "xyz3")?" selected=\"selected\"":null); ?>>xyz3</option>
</select>
Comme ça, tu testes pour chaque option si sa valeur correspond à celle qui a été sélectionnée précédemment et si c'est le cas, alors sera ajouté l'attribut "selected" et ton choix restera en place.

revenir sur l enregistrement en cours ?

par donny » 21 juin 2005, 08:15

salut,

J ai un formulaire de navigation , dans lequel j ai des zone texte et un tableau.On peut acceder au different enregistrement de la table à l aide de liens suivant,precedent... ou d une liste qui contient les different bon de commande auxquel sont associé des achat.
Donc mon probleme c est que quand je rentre une nouvelle commande, je saisi son numero,son fournisseur et ensuite endessous j ai un tableau qui me permet de choisir le produit, la quantite, le prix...Ce qui se passe c est une fois les donnée saisi dans le tableau et quand je valide alors mon formulaire reviens au 1ere element de ma liste deroulante et ne reste pas sur le nouvel enregistrement que je saisi.

Donc j ai essayer de faire un code mais il ne fonctionne qu une fois un enregistrement saisi , c est à dire qu il fau que je saisisse d abord un enregistrement et qu ensuite je me positionne dessus pour que quand je rentre de nouveau produit dans le tableau,je reste sur ce meme enregistrement .Mais sa ne fonctionne donc pas du 1er coup ..???
<?

if(isset($_GET['zz'])){
//echo "<script>javascript:location.href='".$_SERVER['PHP_SELF']."?max=' + ".$_SESSION['max']." + '&id='+ //".$_SESSION['max']."</script>";	

  if(isset($_GET['numcom'])){
     $_SESSION['com']=$_GET['numcom'];
                            }
                            
 echo "<h1>".$_SESSION['com']."</h1>";
 
 
 
  $sql="insert into acheter ( numfournisseur,numconso,boncommande, date,quantite,prix) values  ( ".$_GET['fourn'].", ".$_GET['ref'].", '".$_GET['numcom']."','".$_GET['datec']."',".$_GET['quantitec'].",".$_GET['prixc'].")";



 echo "<b>".$sql."</b>";
             $result=pg_query($sql);
 	if($result){
	     
 		echo "<script>alert('Insertion reussi !');</script>";
	}else{

 		echo "<script>alert('Echec Insertion !');</script>";

		}

 
 
 
for($p=0; $p<count($liste_etat); $p++) 
    { 
    
      
       if($liste_etat[$p]==$_SESSION['com']){
       $z=$p;
        $z2=$liste_etat[$p];
        $_SESSION['id2']=$z;
       
    }
    }

 echo "<script>javascript:location.href='".$_SERVER['PHP_SELF']."?max=' + ".$_SESSION['max']." + '&id='+ ".$_SESSION['id2']."</script>";  
}


 

Merci