boite de dialogue

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 : boite de dialogue

par donny » 14 mai 2005, 13:11

j ai effectuer les modification mais le truc est que sa ne fonctionne toujours pas apparament il refuse de prendre en compte les variable nom et id

par fab » 13 mai 2005, 21:41

A premiere vue il n'y a pas d'espace entre $nom et la clause where
donc remplace
$sql="update personne set nom_perso=".$nom."where id_perso=".$id ; 
par
$sql="update personne set nom_perso=".$nom." where id_perso=".$id ; 
Apres je sais pas avec pgsql mais avec mysql il faut mettre des "apostrophes" autour de texte( Albat : tu as vu je fais des efforts :p ) donc remplace
$sql="update personne set nom_perso=".$nom." where id_perso=".$id ; 
par
$sql="update personne set nom_perso='".$nom."' where id_perso=".$id ; 

par donny » 13 mai 2005, 18:39

j ai mon code,il ne m affiche pas d erreur mais le truc c est qu il n execute pas la requete de mise à jour ??
<?php 
include("connexion.inc.php"); 
 if(isset($_POST['Modifier'])){ 
$id=$_POST['t1'];
$nom=$_POST['t2'];
$sql="update personne set nom_perso=".$nom."where id_perso=".$id ; 
$result=pg_query($sql); 
}  


if(!isset($_GET['max'])){ 
$result = pg_query("SELECT * FROM personne"); 
$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 * FROM personne LIMIT " . $id . ", 1"; 
//$sql = "SELECT * FROM personne offset " . $id . ", 1"; 
$sql = "SELECT * FROM personne LIMIT 1 OFFSET " . $id; 


$result = pg_query($sql) or die('erreur'); 
//$result = pg_query($sql) or die('erreur'); 
$row = pg_fetch_row($result); 
//print_r($row); 
?> 
<input type="text" name="t1" value="<?php echo $row[0]; ?>"><br/> 
<input type="text" name="t2" value="<?php echo $row[1]; ?>"><br/> 
<table><tr><td><?php $deb=$max-$max; 
echo "<a href=\"modif1.php?max=" . $max . "&id=" . $deb . "\">DEBUT</a>"; ?> 
</td> 
//if($precedent != -1) 
<td><?php echo "<a href=\"modif1.php?max=" . $max . "&id=" . $precedent . "\">PRECEDENT</a>";?></td> 
//if($suivant <= $max) 
<td><?php echo "<a href=\"modif1.php?max=" . $max . "&id=" . $suivant . "\">SUIVANT</a>";?></td> 
<td><?php echo "<a href=\"modif1.php?max=" . $max . "&id=" . $max . "\">FIN</a>";?></td> 
</tr> 
</table> 
<form action="<? $_SERVER['PHP_SELF'] ?>" methode="POST">
<input type="submit" value="Modifier" onclick=" return confirm('Vraiment modifier?')"> 
</form>

par donny » 12 mai 2005, 22:46

il manque une paranthese

par donny » 12 mai 2005, 21:45

c est que je me disais il ne le prendra pas en compte
donc j ai rajouter un form mais sa ne fonctionne pas pour autant
il me dit parse error à la ligne 3 ??
<?php 
include("connexion.inc.php"); 
 if(isset($_POST['Modifier']){ 
$id=$row[0]; 
$nom=$row[1]; 
$sql='update personne set nom='.$nom.'where id='$id; 
$result=pg_query($sql); 
}  


if(!isset($_GET['max'])){ 
$result = pg_query("SELECT * FROM personne"); 
$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 * FROM personne LIMIT " . $id . ", 1"; 
//$sql = "SELECT * FROM personne offset " . $id . ", 1"; 
$sql = "SELECT * FROM personne LIMIT 1 OFFSET " . $id; 


$result = pg_query($sql) or die('erreur'); 
//$result = pg_query($sql) or die('erreur'); 
$row = pg_fetch_row($result); 
//print_r($row); 
?> 
<input type="text" name="t1" value="<?php echo $row[0]; ?>"><br/> 
<input type="text" name="t2" value="<?php echo $row[1]; ?>"><br/> 
<table><tr><td><?php $deb=$max-$max; 
echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $deb . "\">DEBUT</a>"; ?> 
</td> 
//if($precedent != -1) 
<td><?php echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $precedent . "\">PRECEDENT</a>";?></td> 
//if($suivant <= $max) 
<td><?php echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $suivant . "\">SUIVANT</a>";?></td> 
<td><?php echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $max . "\">FIN</a>";?></td> 
</tr> 
</table> 
<form action="<? $_SERVER['PHP_SELF'] ?>" methode="POST">
<input type="submit" value="Modifier" onclick=" return confirm('Vraiment modifier?')"> 
</form>

par donny » 12 mai 2005, 14:10

j ai pas tester mon code encore mais il y a un truc qui me tracasse ,dans mon code je n utilise jamais les balise <form action method="post"> et pourtant on utilise post ici
if(isset($_POST["Modifier"]){ 
   

par rami » 12 mai 2005, 13:11

Oui, tout à fait:
<?php
include("connexion.inc.php");
if(isset($_POST["Modifier"]){
   $id=$row[0];
   $nom=$row[1];
$sql='update personne set nom='.$nom.'where id='$id;
$result=pg_query($sql);
}

if(!isset($_GET['max'])){
$result = pg_query("SELECT * FROM personne");
$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 * FROM personne LIMIT " . $id . ", 1";
//$sql = "SELECT * FROM personne offset " . $id . ", 1";
$sql = "SELECT * FROM personne LIMIT 1 OFFSET " . $id;


$result = pg_query($sql) or die('erreur');
//$result = pg_query($sql) or die('erreur');
$row = pg_fetch_row($result);
//print_r($row);
?>
<input type="text" name="t1" value="<?php echo $row[0]; ?>"><br/>
<input type="text" name="t2" value="<?php echo $row[1]; ?>"><br/>
<table><tr><td><?php $deb=$max-$max;
echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $deb . "\">DEBUT</a>"; ?>
</td>
//if($precedent != -1)
<td><?php echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $precedent . "\">PRECEDENT</a>";?></td>
//if($suivant <= $max)
<td><?php echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $suivant . "\">SUIVANT</a>";?></td>
<td><?php echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $max . "\">FIN</a>";?></td>
</tr>
</table>
;)

par donny » 12 mai 2005, 12:57

donc du genre
if(isset($_POST["Modifier"]){ 
   $id=$row[0];
   $nom=$row[1];
$sql='update personne set nom='.$nom.'where id='$id;
$result=pg_query($sql);
} 
et si il clique sur annuler il ne se passe rien

donc je rajoute ce bout de code a ma page que voici
<?php 
include("connexion.inc.php");
if(!isset($_GET['max'])){ 
$result = pg_query("SELECT * FROM personne"); 
$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 * FROM personne LIMIT " . $id . ", 1"; 
//$sql = "SELECT * FROM personne offset " . $id . ", 1"; 
$sql = "SELECT * FROM personne LIMIT 1 OFFSET " . $id;


$result = pg_query($sql) or die('erreur'); 
//$result = pg_query($sql) or die('erreur'); 
$row = pg_fetch_row($result); 
//print_r($row); 
?> 
<input type="text" name="t1" value="<?php echo $row[0]; ?>"><br/> 
<input type="text" name="t2" value="<?php echo $row[1]; ?>"><br/> 
<table><tr><td><?php $deb=$max-$max;
echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $deb . "\">DEBUT</a>"; ?>
</td>
//if($precedent != -1) 
<td><?php echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $precedent . "\">PRECEDENT</a>";?></td>
 //if($suivant <= $max) 
<td><?php echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $suivant . "\">SUIVANT</a>";?></td> 
<td><?php echo "<a href=\"pagia4insert.php?max=" . $max . "&id=" . $max . "\">FIN</a>";?></td>
</tr>
</table>

par rami » 12 mai 2005, 12:04

Nan, tu confonds JS et php la!

Js est executé côté client, PHP côté serveur.
La fonction confirm() te permet juste de savoir si l'utilisateur veut modifier les données ou pas. Donc s'il cliques sur oui, il faut que tu fasse un bout de code PHP qui fasse l'UPDATE comme expliqué plus haut!!!

par donny » 12 mai 2005, 12:00

et sa le rafraichi automatiquement

j allai faire cela, cest bon aussi ?

if (confirm('Vraiment modifier?')){

je fais le update

}

par rami » 12 mai 2005, 11:57

Si on clique sur OK, ton formulaire est validé. Donc tu peux faire ton UPDATE dans la meme page. S'il clique sur Annuler, rien n'est fait.

Donc dans ta page tu peux commencer ainsi:
if(isset($_POST["Modifier"]){
   //modification des données ds la bd
}
?>

Puis la tu affiches ton formulaire comme avant.

par donny » 12 mai 2005, 11:53

ouai exact c est que je voulais faire

Code : Tout sélectionner

<input type="submit" value="Modifier" onclick=" return confirm('Vraiment modifier?')">
mais vu que je connais pas trop le javascript je ne savais pas que sa existait
et donc apres avec le confirm je peux savoir sur quel bouton il a cliquer et revenir sur ma page et faire un update

par zeus » 12 mai 2005, 11:43

rami n'a pas tord !!! Personnellement, je me servait de la popup pour inserer le formulaire de modification

par rami » 12 mai 2005, 11:41

Dans ca cas, je ne vois pas l'interet de passer par une popup. Pourquoi ne pas faire un truc du sytle:
<input type="submit" value="Modifier" onclick=" return confirm('Vraiment modifier?')">
Si on clique sur OK, alors ca execute l'action de ton formulaire (ici un UPDATE de ta table), si on clique sur Annuler, ca ne fait rien.

Je sais pas si c'est ce que tu voulais faire...

par zeus » 12 mai 2005, 11:40

oki !!!! J'avais mal compris !!!

Alors en fait, ce que tu doit faire, c'est que, comme le dit rami, tu doit diriger ton formulaire vers ton popup et tester quel bouton à été cliqué. Si c'est le bouton ok, tu enregistres dans ta base et dans tout les cas, tu execute le code javascript suivant :

Code : Tout sélectionner

<script language='javascript'> window.opener.location.reload(); window.close(); </script>
Qui va rafraichir la fentre aui a ouvert le popup et qui va fermer le popup !!!

Je suis sûr que ça marche, j'ai fait la même chose il y a deux jours