problemes, march pour une ligne, mais pas pour plusieurs ...

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2006, 12:57

bon en faite en regardant de plus pres y stocke pas les bonne valeur dans ma base, y stocke les meme a la suite ...

donc il ne les modifie pas.

et la je me souviens au tout debut, y me disait toujours qu'un variable dans mon form n'etait pas definie, si je la mettai au dessus de mon form plus d'erreur, mais alors il gardai la valeur defini a udessu et si elle changait dans mon form bhein ca se voyait nul part ...


UPDATE intervention SET notetech='', noteprix='', duree='', technicien='', backup='0', format='0', max='3', line='0,1,10,1,1,' WHERE idinter='45'

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2006, 13:04

faut faire un test sur $valeur, mais le probleme, y faudrai passe une fois pour prendre la premiere valeur, ensuite on fait un test au debut pour voir si $valeur contient quelque chose ..

je crois voir, je test et si ok je le poste

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2006, 13:10

Voila je pensai a ceci, qui normalement devrait le faire correctement, mais j'ai teste, seulement, il ne m'affiche plus qu'une ligne ...
 if ($clef==0){
    if($valeur==1) 
    {
    $checked = 'checked'; 
    $lignee=1; 
 $listeCoche.=$lignee; 
    echo "<input type=\"hidden\" name=\"line\" value=\"$listeCoche\">";  
    echo "$probleme[$clef]"; 
    echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />';
    
    echo "<br>"; 
     
        
    } 
 else{ 
            $checked = ''; 
            $lignee=0; 
    
 $listeCoche.=$lignee; 
    echo "<input type=\"hidden\" name=\"line\" value=\"$listeCoche\">";  
    echo "$probleme[$clef]"; 
    echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />'; 
    echo "<br>"; 
 }
 
   
    }

elseif(($valeur==1)or($valeur==0))
{
	$listeCoche.=',';

 if($valeur==1) 
    {
    $checked = 'checked'; 
    $lignee=1; 
 $listeCoche.=$lignee; 
    echo "<input type=\"hidden\" name=\"line\" value=\"$listeCoche\">";  
    echo "$probleme[$clef]"; 
    echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />';
    
    echo "<br>"; 
     
        
    } 
 else{ 
            $checked = ''; 
            $lignee=0; 
    
 $listeCoche.=$lignee; 
    echo "<input type=\"hidden\" name=\"line\" value=\"$listeCoche\">";  
    echo "$probleme[$clef]"; 
    echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />'; 
    echo "<br>"; 
 }

} 
    

Mammouth du PHP | 1029 Messages

16 févr. 2006, 13:16

As-tu vu mon dernier post?
L'expérience est la somme de toutes nos erreurs.

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2006, 13:25

oui,

et je pense que pour arriver a ne plus avoir de virgule a la fin ce que j'ai poste deux poste plus haut doit plus ou moins correspondre ...

ca evite de mettre un virgule quand on a terminer.

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2006, 15:04

Voila, ceci est ok, il n'y a plus la virgule ne fin de ligne. le valeur de listeCoche est exacte ...



$listeCoche='';	
$ligne = "0,1,0"; 

$tab = explode(',',$ligne); 
if(!empty($resolution)) 
{ 
    $resolution=trim($resolution); 
    $probleme=split("\n",$resolution); 
    $max=count($probleme); 
    $cpt=0; 
    ?> 
        <input type="hidden" name="max" value="<?=$max?>"> 
    <? 
foreach($tab as $clef => $valeur) { 

  if ($clef==0){ 
    
    if($valeur==1) 
    { 
    $checked = 'checked'; 
    $lignee=1; 

    echo "$probleme[$clef]"; 
    echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />'; 
    echo "<br>"; 
    $listeCoche=$lignee; 
      
         
    } 
else { 
            $checked = ''; 
            $lignee=0; 
     

    echo "$probleme[$clef]"; 
    echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />'; 
    echo "<br>"; 
    $listeCoche=$lignee; 
} 



  }
elseif($clef>0)
{
	$listeCoche.=',';
	
if($valeur==1) 
    { 
    $checked = 'checked'; 
    $lignee=1; 

    echo "$probleme[$clef]"; 
    echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />'; 
    echo "<br>"; 
    $listeCoche.=$lignee; 
      
         
    } 
else { 
            $checked = ''; 
            $lignee=0; 
     

    echo "$probleme[$clef]"; 
    echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />'; 
    echo "<br>"; 
    $listeCoche.=$lignee; 
} 


}



} 
echo $listeCoche; 		
echo "<input type=\"hidden\" name=\"line\" value=\"$listeCoche\">";		
}

Mammouth du PHP | 1029 Messages

16 févr. 2006, 15:31

et donc dans la base est-ce que cela modifie?
L'expérience est la somme de toutes nos erreurs.

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2006, 15:53

oui, il met sans la derniere , qui possai probleme, mais si je change mes coche en prenant soins d'enleve le $ligne="0,1,0", il ne modifie rien ...

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2006, 15:58

c'est comme si, il retenait les valeur des case coché et que si on les modifie, il ne les sauve pas ...



au fait je le fais en deux fichier separe, la recuperation de valeur se fait sur le premier ou deuxieme fichier?

le premier = celui qu'on modifie depuis 1 jours, le second celui ou je recupere tout et fais mes requettes ... ,

Mammouth du PHP | 1029 Messages

16 févr. 2006, 16:59

Le premier fichier n'afficheras que ce que tu ressors de ta db, si tu veux modifier, il faut récupérer les inputs dans une deuxième page.
L'expérience est la somme de toutes nos erreurs.

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2006, 17:05

et je fais ca comment?

car ici comme je le fait j'ai que les 1, donc si on image avoir un 1,0,1 y me refera : 1,1 en laissant tombe le 0 .. du coup ca fausse tout ...

Mammouth du PHP | 1029 Messages

16 févr. 2006, 17:51

tu dois récupérer cet élément
echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />'; 
dans une deuxième page et faire de nouveau un foreach et de reconstruire un $linecoché et c'est celui-là qui doit renter dans la bd
L'expérience est la somme de toutes nos erreurs.

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2006, 17:53

pour le moment je la recupere comme ceci :
foreach($_POST['liste'] as $valeur) 
    {
    
    
    	
    $ligne.= $valeur.",";

 
    }
je devrai faire comme ca alors :
$test = $_POST["list"];
$tab=explode(',',$test);
foreach($tab as $clef => $valeur)
{

presque le meme details que l'autre page ...

}

Mammouth du PHP | 1029 Messages

16 févr. 2006, 18:34

plus ainsi
for($=0;count($_POST['list']);$I++)
{
echo  $_POST['List'][$i]

}


Modifié en dernier par Maitrepylos le 16 févr. 2006, 18:49, modifié 1 fois.
L'expérience est la somme de toutes nos erreurs.

Invité
Invité n'ayant pas de compte PHPfrance

16 févr. 2006, 18:47

oui c'est ca :)

j'y crois pas mes yeux ca marche :D

cent mille MERCI a toi Maitrepylos pour ton aide, ta patiente et tout et tout :)

voici la reponse, ca peut toujours servir :D
$liste=$_POST['liste'];
    $chaine = '';
for ($i = 0; $i <= ($max-1); $i++) {

	if($i==0)
	{	
	if (isset ($liste[$i])) {
   $chaine = '1';
} else {
   $chaine = '0';
}
}

else {


if (isset ($liste[$i])) {
   $chaine .= ',' . '1';
} else {
   $chaine .= ','.'0';
}
}

} 
Encore MERCI Maitrepylos