|
bibi 16
| Posté : 07-07-2003 14:04
voila !! tout est dans le titre !!
En fait je dois gerer une corbeille, et donc j'ai 2 cases à cocher, une pour supprimer et une pour restaurer !!
(et un bouton envoyer avec une boite de confirmation mais ça on s'en fout)
Donc j'aimerai qu'on ne puisse cocher qu'un case à la fois .....et pas les 2.....
Comment faire .....
voici le script si besoin :
<?
$HttpServer="HTTP_HOST";
$host="loc alhost";
$user="root";
$pass="";
$bdd=&quo t;bdplib";
$connexion=mysql_connect($host,$user,$pass) ;
@mysql_select_db($bdd,$connexion);
// sélectionne toutes les fiches de la table $table
$query = "SELECT * FROM informations where Valid='NON' and Supprimer='OUI' and (Type ='Démonstration' or Type ='Demonstration') order by Id ;";
$result = mysql_query($query, $connexion);
/* donne le nombre de ligne d'un resultat*/
$num_rows = mysql_num_rows($result);
if (isset($enregistrer)){
$j=0;
while($j<$num_rows){
/* si la case est cochée echo $HTTP_POST_VARS["check".$j]='on', */
/*et si la case est décochée alors echo $HTTP_POST_VARS["check".$j] n'a pas de valeur*/
if(isset($HTTP_POST_VARS["check".$j])){
$HTTP_ POST_VARS["check1".$j]!='on';
$requete=" delete from informations WHERE Valid='NON' and Supprimer='OUI' and ";
$requete.=" Id=" .$HTTP_POST_VARS["hid".$j] ;
$resultat = mysql_query($requete, $connexion);
}elseif (isset($HTTP_POST_VARS["check1".$j])){
$requete1="update informations set Supprimer='NON' and Valid='NON' where ";
$requete1.=" Id=" .$HTTP_POST_VARS["hid".$j] ;
$result1 = mysql_query($requete1, $connexion);
}
$j++;
}
$res ult = mysql_query($query, $connexion);
$num_rows=mysql_num_rows($result);
}
?& gt;
<html>
<head>
<title>Supprimer démonstration</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<SCRIPT>
function reset_envoyer()
{
//ouvre une boite de confirmation
if (confirm("Etes vous sûr de vouloir supprimer ?")) {
document.form1.submit();
}
function controle_choix(i)
{
var choix = document.form1.check;
if (i == 0)
{
if (choix[0].checked == true)
{
for (i = 1; i < choix.length; i++)
choix[i].checked = false;
}
}
else
{
if (choix[i].checked == true)
{
choix[0].checked = false;
}
}
}
</SCRIPT>
<body bgcolor="#FFFFE1" ALINK="#FF9900" LINK="#FF9900" VLINK="#FF9900">
<FONT FACE="Verdana" SIZE=6 COLOR="#FF8040">
<center> Démonstrations</center></font>
<br><form name="form1" METHOD="POST" ACTION="file:///C|/Program%20Files/EasyPHP/www/plib/admin/supprimer/./supd emo.php?enregistrer=1" >
<?
if ($result) {
If ($num_rows==0) {?>
<center><? echo("Il n'y a pas de nouveaux documents à supprimer");?> </center>
<?} else{ ?>
<center><? echo "Il y a ".$num_rows." nouveaux documents";?> </center>
<br>
<blockquote><blockquote><? /*tabulation*/?>
<? $i=0;?>
<table width="802" border="1">
<? while ($val=mysql_fetch_array($result)){ ?>
<br>
<tr>
<td width="127" height="20" valign="top"><br>
<br><br>
<? $id=$val["Id"] ;?>
<? /* la case à cocher*/?>
<input type="checkbox" name='check<?echo $i;?>' checked > Supprimer
<input type="hidden" name='hid<?echo $i;?>' value=<?echo $id ;?>>
<? $i++; ?>
</td>
<td width="119" height="20" valign="top"><br>
<br><br>
<? /* la case à cocher*/?>
<input type="checkbox" name='check1<?echo $i;?>' onclick="controle_choix()" > Restaurer
</td>
<td width="534" valign="top"> <br>
<LI>
<? If ($val["NameTitle"] != "") { ?>
<font face="Verdana" size=3 color="#FF8040"><b>
<? echo $val["NameTitle"]; ?>
</b></font><br>
<? } ?>
<? If ($val["Organization"]!=""){ ?>
<font face="Verdana" size=1 color="#0000FF"><b> Organisation : </b>
<? echo $val["Organization"];?>
</font><br>
<? } ?>
<? If ($val["Abstract"]!="") { ?>
<FONT FACE="Verdana" size=1 COLOR="#0000FF"><b> Résumé : </b>
<? echo $val["Abstract"];?></font><br>
<? } ?>
<? If ($val["Description"]!="") {?>
<FONT FACE="Verdana" size=1 COLOR="#0000FF"> <b>Description : </b>
<FONT FACE="Verdana" size=1 COLOR="#0000FF">
<A HREF="#" onclick="window.open('<? echo $val["Description"];?>','description','width=380,height=270,toolba r=no,,menubar=no,scrollbars=yes,resizable=no')">
<? echo $val["Description"];?></a></font></font><br&g t;
<? } ?>
<? If ($val["Keywords"]!=""){ ?>
<FONT FACE="Verdana" size=1 COLOR="#0000FF"><b>Keywords: </b>
<? echo $val["Keywords"];?></font><br>
<? } ?>
<? If ($val["URL"]!=""){ ?>
<? if (strpos($val["URL"],$httpserver) ){?>
<font face="Verdana" size=1 color="#0000FF"><b> URL : </b>
<a href="<? echo $val["URL"] ;?>" target="nwindow">
<? echo $val["URL"]; ?></a> </font><br>
<? } else { ?>
<font face="Verdana" size=1 color="#0000FF"><b> URL : </b>
<a href="<? echo $val["URL"];?>" target="nwindow">
<? echo $val["URL"];?></a> </font><br>
<? }?>
<? } ?>
<? If ($val["Contact"]!=""){ ?>
<FONT FACE="Verdana" size=1 COLOR="#0000FF"><b>Contact: </b>
<? echo $val["Contact"];?></font><br>
<? } ?>
<? If ($val["Email"]!=""){ ?>
<font face="Verdana" size=1 color="#0000FF"><b> E-mail :</b> <a href="mailto:'"&<? echo $val["Email"];?>&"'"><? echo $val["Email"];?></a><br></font>
<? } ?>
<? If ($val["Langue"]!=""){ ?>
<font face="Verdana" size=1 color="#0000FF"><b> Langue: </b>
<? echo $val["Langue"];?> </font><br>
<? } ?>
<? } ?>
<br>
</td>
</tr>
</table>
<br><br>
<?$val=mysql_result($result,$num_rows>$num=$num_rows);?>
<center><input type="Button" name="Button" value="Enregistrer les modifications" onclick="reset_envoyer()" ></center>
<? } ?>
<? } ?>
</blockquote></blockquote>
</form>
</body>
</html>
|  Profil
|
|
Tribal-Dolphin 4374
| Posté : 07-07-2003 14:14
utilise des boutons Radios, c plus simple.
|  Profil
|
|
bibi 16
| Posté : 07-07-2003 14:43
Comment tu t'en sert des boutons radio dans un formulaire car j'ai essayé....
Ok ça marche, on ne peut en cocher qu'un à la fois ok !! mais pour le traitemnt des requete en fonction de la case cochée la j'y arrive pas vu qu'il ont le meme nom et qu'ils n'ont pas une valeur fixe dans mon script (boucle type caddie)
merci !! |  Profil
|
|
Tribal-Dolphin 4374
| Posté : 07-07-2003 15:17
tu fait un barbarian like !!
tu met ta valeur après l'action.
Exemple =>
Le radio efface à la valeur efface:1 // et le retaure à la valeur restore:1 (1 étant l'id de l'enregistrement)
Ensuite, tu à plus qu'as fair un explode de la valeur et tu as les 2 paramètres dont tu as besoin. |  Profil
|
|
bibi 16
| Posté : 07-07-2003 16:44
dsl mais g rien compris t'aurais pas un exemple?
je suis débutant, je ne sais pas me servir des explode. |  Profil
|
|
Tribal-Dolphin 4374
| Posté : 07-07-2003 20:08
<input type="radio" name="name" value="efface:1">
Lors du traitement du formulaire :
list($action,$id) = explode(":",$name);
if($action=="efface")
{ $query = mysql_query("DELETE FROM table WHERE id='$id'"); }
etc.............
C plus clair ??
En tous cas, je ne saurais trop te conseiller d'aller consulter la doc PHP sur www.nexen.net
@++
[ Message édité par : Tribal-Dolphin : 08-07-2003 06:27 ] |  Profil
|
|
axel 10065
| Posté : 07-07-2003 21:07
moi je fais a la debutante :
<input type=radio name=xxxxx value=1>Effacer</input>
<input type=radio name=xxxxx value=2>Restaurer</input>
puis un pov if $xxxxx = 1 {f° pr effacer} else {F° pr restaurer}
Ms c un vrai truc de nabot en php...
[ Message édité par : Tribal-Dolphin : 08-07-2003 06:25 ] |  Profil E-mail www
|
|
bibi 16
| Posté : 08-07-2003 10:08
J'ai mis ce problème en attente mais j'ai exactement le même problème avec un autre truc donc je remets ça
ICI je dois afficher par ordre alphabetique ou par date, donc dans une page selon la variable récupérée par une session j'execute une requete order by ID ou ordre by Title
Voici le script de la page où je fais le choix de l'ordre ....
SCRIPT :
<?
session_name('ordo');
session_start();
?>
& lt;html>
<head>
<title>ordonner</title>
<me ta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<script>
func tion reset_envoyer(){
document.form1.submit();
window.open('../confirmatio n.php', 'confirmation', 'width=300,height=300,scrollbars=no');
}
</script>
<b ody bgcolor="#FFFFE1" text="#000099">
<font face="Verdana" size=6 color="#FF8040">
<center>
Démonstrations
</center>
</font> <br>
<form name="form1" method="POST" action="./ordonnedemo.php" >
<blockquote>
<blockquote>
<p>
<input type="radio" name="radiobutton" value="date">Classer par date</input>
</p>
<p>
<input type="radio" name="radiobutton" value="alpha">Classer par ordre alphabétique</input>
<br>
<br>
</p>
<center>
<input type="Button" name="Button" value="Enregistrer les modifications" onClick="reset_envoyer()">
</center>
<?if ($radiobutton=="date"){
$ordre=="date";
}elseif($radiobutton=="alpha"){
$ordre=="alpha";
}
session_register('ordre');
?>
</blockquote></blockquote>
</form>
</body>
</html>
C'est un peu plus court que le précédent j'ai employé la dernière methide mais ça marche tjrs pas
De plus dreamweaver n'aime pas mes </input> ??????????? |  Profil
|
|
Guizmo 66
| Posté : 08-07-2003 10:33
avec dream pas besoin de fermer la balise input |  Profil
|
|
bibi 16
| Posté : 08-07-2003 10:46
OK mais c koi le pb alors car je ne l'avais pas mise au début et ça marchait pas mieux..... |  Profil
|
|
Tribal-Dolphin 4374
| Posté : 08-07-2003 13:02
Ben déjà, on vois pas ta requete SQL donc ça aide pas
Mais je dirais regarde si tu à bien un champ nommé "date" et un autre nommé "alpha" dans ta table. |  Profil
|
|
bibi 16
| Posté : 08-07-2003 13:17
Je n'ai pas de champs alpha et date(enfin j'ai un date mais je m'en sert pas dans la requete)
j'ai mis date et alpha mais j'aurai très bien pu mettre 1 et 2 c'est juste pour déterminer quelle requete je dois utiliser ..
Le probleme c'est que je n'arrive pas à utiliser la valeur des boutons radio....
début du script de la page d'affichage :
<?
session_name('ordo');
session_start();
$HttpS erver=$HTTP_HOST;
$host="localhost";
$user="root";
$pass="";
$bdd="bdplib";
@mysql_connect($host,$ user,$pass) or die ("impossible de se connecter");
@mysql_select_db("$bdd") or die ("impossible de se connecter");
if($ordre=="date"){
$query="SELE CT * FROM Informations WHERE Informations.Type='Demonstration' AND Informations.Valid='OUI' AND Informations.Langue='UK' ORDER BY Id ;";
}elseif($ordre=="alpha"){
$query="SELECT * FROM Informations WHERE Informations.Type='Demonstration' AND Informations.Valid='OUI' AND Informations.Langue='UK' ORDER BY NameTitle ;";
}else{
$query="SELECT * FROM Informations WHERE Informations.Type='Demonstration' AND Informations.Valid='OUI' AND Informations.Langue='UK' ORDER BY Id ;";
} |  Profil
|
|
bibi 16
| Posté : 08-07-2003 14:37
Apparement si j'utilise une session mes informations seront perdu à la connexion suivante, alors que je voudrai que les infos restent en memoire pour que je puissent decider de l'ordre d'affichage....
Faut il obligatoirement que je crée un nouvelle table avec les informations relatives à l'ordre que je désire ??? (je crois bien que oui) |  Profil
|
|