begin process at 2012 05 30 21:04:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

fonction php "cochez tout"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fonction php "cochez tout"

lundi 27 juillet 2009 à 11:25:57 | fonction php "cochez tout"

anthony428

Bonjour,

j'ai une page php qui m'affiche des cases à cocher en fonction des résultats retournés dans ma base de données.
Le problème est que je souhaiterais avoir une case à cocher qui me permettrait de cocher toutes les autres cases de la page car dans le cas ou j'aurais 250 enregistrements, je ne veux pas que l'utilisateur ait à cocher 250 cases.

voici mon code :

Code PHP :

<?php
...
?>
<form method="post">
<a name="haut"></a>
<?php

echo "<table border=1>";
echo'<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#18447F">
<td colspan="5"><div align="center"><font color="#FFFFFF" size="5px"></td>
</tr>
<tr bgcolor="#B8C8FE">
<td width="20%" align="center"><font face=\"arial\" size=\"5\">Selection</font></td>
<td width="20%" align="center"><font face=\"arial\" size=\"5\">Enregistrement</font></td>
<td align="center"><font face=\"arial\" size=\"5\">Nom </font></td>
<td width="20%" align="center"><font face=\"arial\" size=\"5\">Ville</font></td>
<td width="20%" align="center"><font face=\"arial\" size=\"5\">Code postal</font></td>
</tr>
<table/>';



include('../../connectBDD.php');

$table= 'champs';
$champs= array('date','nom','cp','ville');
$select= 'id,'.'nom, '.'ville, '.'cp ';
$order= 'nom';
$sens= 'ASC';
$limit_start= '0';
$limit_nb= '250';
$count= '';

function requete($table, $champs, $select, $order, $sens, $limit_start, $limit_nb, $count = '')
{
// option de recherche
$option = $_POST['option'];
// texte de recherche
$search = $_POST['search'];

// si c'est le premier appel de la fonction
if(!isset($fonction_requete))
{
static $fonction_requete = 1;

// si "Rechercher tous les mots" ou "Rechercher un de ces mots"
if($option == 'all' || $option == 'one')
{
// liste des mots
$mots = explode(' ', $search);

// sépararateur
if($option == 'all')
$sep = ' AND ';
else
$sep = ' OR ';
} // if($option == 'all' || $option == 'one')
// "Rechercher l'expression exacte"
else
{
$mots = $search;
$sep = '';
}
} // if(!isset($fonction_requete))

if(!is_array($champs))
$champs = array($champs);

if($option == 'all' || $option == 'one')
{
// pour savoir si on en est à la première itération ou non
$i = 0;

// pour tous les mots
foreach($mots as $mot)
{
if(!$i)
{
$search = '~#^!|!^#~ LIKE \'%' . $mot . '%\'';
$i = 1;
}
else
$search .= $sep . '~#^!|!^#~ LIKE \'%' . $mot . '%\'';
} // foreach($mots as $mot)
} // if($option == 'all' || $option == 'one')
else if($option == 'sentence')
$search = '~#^!|!^#~ LIKE \'%' . $mots . '%\'';

$i = 0;

// début de requête
if(empty($count))
$req_search = 'SELECT ' . $select . ' FROM ' . $table . ' WHERE ';
else
$req_search = 'SELECT count(' . $count . ') FROM ' . $table . ' WHERE ';

// ajout des champs
foreach($champs as $champ)
{
if(!$i)
{
$req_search .= '( ' . str_replace('~#^!|!^#~', $champ, $search) .' ) ';
$i = 1;
}
else
$req_search .= 'OR ( ' . str_replace('~#^!|!^#~', $champ, $search) .' ) ';
}

if(empty($count))
{
$req_search .= "ORDER BY $order $sens LIMIT $limit_start, $limit_nb";

return $req_search;

} }

$req_search = requete( $table, $champs, $select, $order, $sens, $limit_start, $limit_nb );
$result = mysql_query( $req_search ) or die('Erreur MySQL');
while ($row = mysql_fetch_assoc($result)) {
$_SESSION['nb_enregistrement']=mysql_num_rows($result);
$_SESSION['id'.$i]=$row['id'];

?>
//Table qui affiche les résultats avec des cases à cocher
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#B8C8FE">
<td width="20%" align="center"><?php echo "<input type=\"checkbox\" name=\"data[]\" value=\"".$row['id']."\">"; ?></td>
<td width="20%" colspan="2" bgcolor="#B8C8FE" align="center"> <?php echo "<font face=\"arial\" size=\"3\">", $row['id'],"</font>"; ?> </td>
<td width="20%" colspan="2" bgcolor="#B8C8FE" align="center"> <?php echo "<font face=\"arial\" size=\"3\">", $row['nom'],"</font>"; ?> </td>
<td width="20%"align="center"><?php echo "<font face=\"arial\" size=\"3\">", $row['ville'],"</font>"; ?> </td>
<td width="20%" colspan="2" bgcolor="#B8C8FE" align="center"> <?php echo "<font face=\"arial\" size=\"3\">", $row['cp'],"</font>"; ?> </td>
</tr>
<tr>
<td height="3"></td>
<td></td>
<td></td>
</tr><br>
<?php
echo "</table>";
}
?>
<p align="center"><a href="#haut" class="lien2">Haut de page - </a></p>
<p><form name="export_resultat">
<p align="center"><input type="button" value="Exporter la fiche au format PDF" name="envoi" onClick="form.action='fiche.php';form.submit()"></p>
<div align="center">
<input type="button" name="exporter" value="Exporter l'ensemble des r&eacute;sultats au format Excel" onClick="form.action='export.php';form.submit()">
</div>
</form>
</form>
<?php
}
?>


Si quelqu'un pouvait m'aider, ce serait sympa.
merci d'avance.

lundi 27 juillet 2009 à 13:42:25 | Re : fonction php "cochez tout"

Orange73

Membre Club


Hello,

il faut regarder du côté javascript :)

A+

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)

lundi 27 juillet 2009 à 14:15:10 | Re : fonction php "cochez tout"

nautilus99

Bonjour,

Shining Star propose un script complet JavaScript qui fait exactement ce que tu demandes. Considères le comme un tutoriel et adaptes à ton propre code.



lundi 27 juillet 2009 à 18:11:58 | Re : fonction php "cochez tout"

anthony428

j'avais bien trouvé ce type de fonction mais c'est dans l'adaptation de mon script que je sèche un peu.
J'ai testé la fonction javascript ci dessous, en effet celle ci fonctionne lorsque je nomme ma chekbox "list" comme dans l'exemple mais lorsque j'essai d'adapter avec mes paramètres, ça coince.
J'ai donné comme nom à mes chekbox un nom unique data[].
Ce qui rend l'utilisation de la fonction impossible. En tout cas impossible à comprendre pour moi.

voici la fonction javascript :

Code Javascript :

<SCRIPT LANGUAGE="JavaScript">
function checkAll(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = true ;
}

function uncheckAll(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = false ;
}
</script>

et voici la partie du code qui appel la fonction :
Code PHP :

<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#B8C8FE">
<td width="20%" align="center"><?php echo "<input type=\"checkbox\" name=\"data[]\" value=\"".$row['id_societe']."\">"; ?></td>
<td width="20%" colspan="2" bgcolor="#B8C8FE" align="center"> <?php echo "<font face=\"arial\" size=\"3\">", $row['id_societe'],"</font>"; ?> </td>
<td width="20%" colspan="2" bgcolor="#B8C8FE" align="center"> <?php echo "<font face=\"arial\" size=\"3\">", $row['nom_societe'],"</font>"; ?> </td>
<td width="20%"align="center"><?php echo "<font face=\"arial\" size=\"3\">", $row['ville'],"</font>"; ?> </td>
<td width="20%" colspan="2" bgcolor="#B8C8FE" align="center"> <?php echo "<font face=\"arial\" size=\"3\">", $row['cp'],"</font>"; ?> </td>
</tr>
<tr>
<td height="3"></td>
<td></td>
<td></td>
</tr><br>
<?php
echo "</table>";
}
?>
<p align="center"><a href="#haut" class="lien2">Haut de page - </a>
<a href="../index.php">Retour à l'interface d'administration</a></p>
<input type="button" name="CheckAll" value="Check All" onClick="checkAll(document.myform.data[])">
<input type="button" name="UnCheckAll" value="Uncheck All" onClick="uncheckAll(document.myform.data[])">


Si quelqu'un y voit plus clair que moi, qu'il m'éclaire de ses lumières.
Merci d'avance.

mardi 28 juillet 2009 à 04:58:48 | Re : fonction php "cochez tout"

jeca

Réponse acceptée !

Bonjour,

Tu n'es pas sur le bon forum, puisque c'est un problème javascript.

Cela dit, il faut que tu utilises l'objet 'elements' :

Code Javascript :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
function cocheDecoche(formulaire, checked)
{
with (formulaire)
{
var nb = elements['data[]'].length;
var i = 0;
while (i < nb)
{
elements['data[]'][i].checked = checked;
i++;
}
}
}
</script>
</head>
<body>
<form name="test" method="post" action="">
checkbox 1&nbsp;&nbsp;&nbsp;<input type="checkbox" name="data[]" value="1" /><br />
checkbox 2&nbsp;&nbsp;&nbsp;<input type="checkbox" name="data[]" value="2" /><br />
checkbox 3&nbsp;&nbsp;&nbsp;<input type="checkbox" name="data[]" value="3" /><br />
checkbox 4&nbsp;&nbsp;&nbsp;<input type="checkbox" name="data[]" value="4" /><br />
checkbox 5&nbsp;&nbsp;&nbsp;<input type="checkbox" name="data[]" value="5" /><br />
checkbox 6&nbsp;&nbsp;&nbsp;<input type="checkbox" name="data[]" value="6" /><br />
checkbox 7&nbsp;&nbsp;&nbsp;<input type="checkbox" name="data[]" value="7" /><br />
checkbox 8&nbsp;&nbsp;&nbsp;<input type="checkbox" name="data[]" value="8" /><br />
checkbox 9&nbsp;&nbsp;&nbsp;<input type="checkbox" name="data[]" value="9" /><br />
checkbox 10&nbsp;<input type="checkbox" name="data[]" value="10" /><br />
checkbox 11&nbsp;<input type="checkbox" name="data[]" value="11" /><br />
checkbox 12&nbsp;<input type="checkbox" name="data[]" value="12" /><br />
checkbox 13&nbsp;<input type="checkbox" name="data[]" value="13" /><br />
checkbox 14&nbsp;<input type="checkbox" name="data[]" value="14" /><br />
checkbox 15&nbsp;<input type="checkbox" name="data[]" value="15" /><br />
checkbox 16&nbsp;<input type="checkbox" name="data[]" value="16" /><br />
checkbox 17&nbsp;<input type="checkbox" name="data[]" value="17" /><br />
checkbox 18&nbsp;<input type="checkbox" name="data[]" value="18" /><br />
checkbox 19&nbsp;<input type="checkbox" name="data[]" value="19" /><br />
checkbox 20&nbsp;<input type="checkbox" name="data[]" value="20" /><br />
<input type="button" name="coche" value="tout cocher" onclick="cocheDecoche(this.form, 'checked')" />
&nbsp;
<input type="button" name="decoche" value="tout décocher" onclick="cocheDecoche(this.form, '')" />
</form>
</body>
</html>


Cordialement.

JC

mardi 28 juillet 2009 à 09:17:32 | Re : fonction php "cochez tout"

anthony428

Merci beaucoup, ça fonctionne comme je le voulais !!!
Petite question bonus :
Ces résultats sont ensuite traités pour être transféré dans un fichier excel. Si je veux que le fichier excel généré avec ces enregistrements s'ouvre après être rempli, comment dois je procédé ?
Merci d'avance.

mardi 28 juillet 2009 à 14:03:52 | Re : fonction php "cochez tout"

anthony428

ça y est j'ai trouvé, voici la fonction :

Code PHP :

function forcerTelechargement($nom, $situation, $poids)
{
header('Content-Type: application/octet-stream');
header('Content-Length: '. $poids);
header('Content-disposition: attachment; filename='. $nom);
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($situation);
exit();
}


et le script qui appelle la fonction :
Code PHP :

forcerTelechargement('nom-fichier.xls', './nom-fichier.xls', 1000000);


En espérant que ça puisse en aider d'autres.



Cette discussion est classée dans : champs, option, search, limit, if


Répondre à ce message

Sujets en rapport avec ce message

problème fonction. [ par anthony428 ] Salut, j'essai d'adapter un script qui me permet de rechercher dans ma base de données en fonction des mots clés tapés dans un moteur de recherche. problème syntaxe requete sql couplée avec php. [ par anthony428 ] Salut, j'essai d'adapter un script qui me permet de rechercher dans ma base de données en fonction des mots clés tapés dans un moteur de recherche. Le inserer et modifier des données dnas la bdd sans répétitions? [ par diocey ] Bonjour à tous. Mon problème était difficile à definir dnas une ligne de sujet! Alors voila: J'ai un fichier ".tab" que j'ai parser afin de l'intgrer Pagination et trie de résultats [ par space_dwarf ] Bonjour à tous, Voilà je me présente, je suis étudiant en archéologie et je suis en train de réaliser un site internet pour pouvoir accéder facilemen Ne pas insérer un champ vide [ par lolowar ] Bonjour,Je viens chercher un peu d'aide pour un problème qui me semble facile, mais peut être à trop chercher je bloque depuis deux jours...Voila, j'a selection option avec if et else et else if [ par gigawatt ] BonjourQuelqu'un peut il apporter sa contribution à ma requête:En fait j'explique: certains clients de ma base foxpro ont plusieurs contrats de mainte Remplir des input textes avec les champs d'une table pour modif/update [ par aforpien ] <link rel="Fi condition if et else [ par gigawatt ] Bonjour Je suis obligé de passer ce message en textbox Je n'arrive pas à utiliser les conditions if et else avec une option sélect J'explique j'ai qu Jusqu'à combien de conditions dans le if? [ par Bigbangss ] Bonjour tout le monde,voila j'ai un souci avec un moteur de recherche multicritères. L'internaute peut choisir d'afficher les profils des membres du s Actualisation des champs selon liste déroulante [ par aforpien ] Bonjour à tous,J'ai créé une page ou j'affiche une liste déroulante alimentée par une requête SQL. J'aimerai que lorsque je clique sur un bouton Ok mi


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales