Script PHP pour zone de liste
Posté : 09 janv. 2015, 10:29
Bonjour,
Pour la petite histoire, j'ai réussi a modifier une fonction PHP qui génere un fichier texte appellé par une zone de liste.
Code original :
Je doit cependant effectué la même opération sur une autre zone de liste, qui cette fois-ci n'appelle aucun fichier texte mais extrait des données en live.
Voici le code original:
Une âme experte et charitable ?
Pour la petite histoire, j'ai réussi a modifier une fonction PHP qui génere un fichier texte appellé par une zone de liste.
Code original :
foreach ($listeunique as $valeur)
{
$a_ecrire = "<option value=\"".$valeur."\">";
$a_ecrire.= htmlspecialchars($valeur)." ";
$a_ecrire.= "</option>";
fwrite($ouverture, $a_ecrire, 4096);
}
fclose($ouverture);
unset($ouverture, $a_ecrire);
Code amélioré (ajout de optgroup automatique avec remplacement de texte (tout ce qui y a avant '/' devient un <optgroup>)
$prev = '!empty';
$first = true;
foreach ($listeunique as $valeur) {
$a_ecrire = '';
$tmp = explode('/',$valeur);
if(isset($tmp[1])) {
if($prev != $tmp[0]) {
if($prev != '!empty') {
$a_ecrire.= "</optgroup>";
}
$a_ecrire.= "<optgroup label=\"".$tmp[0]."\">";
$prev = $tmp[0];
}
$a_ecrire.= "<option value=\"".$valeur."\">";
$a_ecrire.= htmlspecialchars($tmp[1])." ";
} else {
$prev = '!empty';
if(!$first) $a_ecrire.= "</optgroup>";
$a_ecrire.= "<option value=\"".$valeur."\">";
$a_ecrire.= htmlspecialchars($valeur)." ";
}
$a_ecrire.= "</option>";
$first = false;
fwrite($ouverture, $a_ecrire, 4096);
}
fclose($ouverture);
unset($ouverture);
Celle-ci fonctionne bien maintenant.Je doit cependant effectué la même opération sur une autre zone de liste, qui cette fois-ci n'appelle aucun fichier texte mais extrait des données en live.
Voici le code original:
function listtypes($arrayname,$arrayverif, $texteval0)
{
global $listetypearray, $bdd, $link;
$xval = "<select name=\"".$arrayname."\">";
$xval .= "<option value=''"; if ($arrayverif == '') {$xval .= " selected=\"selected\"";}
$xval .= ">* $texteval0 *</option>";
asort($listetypearray);
//affichage
foreach($listetypearray as $indice => $valeur)
{
$xval .= "<option value=\"".$indice."\"";
if ($arrayverif == $indice) {$xval .= " selected=\"selected\"";}
$xval .= "> ".$valeur." ";
$xval .= "</option>";
}
$xval .= "</select>";
return $xval;
}
Sur la base du deuxième code, je doit affiché cette zone de liste avec des <optgroup> à la place de tout ce qu'il y a avant des ']' cette fois ci.Une âme experte et charitable ?