2010-12-08 15 views
0

Je crée une page XHTML, et j'utilise php pour la générer. Alors, maintenant, je suis la génération d'un combobox comme ceci:XHTML: Aucun élément sélectionné dans <select> malgré 'selected = "selected' '

<select id="Indexer_Backend_select" size="1" onchange="changeHidBySelect('all_id')"> 
    <option value="nr1">nr1</option> 
    <option value="nr2">nr2</option> 
    <option value="nr3" selected="selected">nr3</option> 
</select> 

Donc, maintenant, dans certains cas, il travaille, et dans certains cas othere, il est juste le toppest sélectionné.

Pourquoi cela? Je suis vraiment blockd, donc je ne sais pas du tout comment continuer ...

thx pour l'aide

EDIT:

avec Firefox -Je suis

-I vient d'écrire ce partout, il est généré par une fonction PHP qui ressemble à ceci:

function createOptions($defaultvalue,$curr_path,$default_important,$only_modules) { 

############################################################################################### 
## String createOptions($defaultvalue string, $curr_path string, $default_important boolean, ## 
##      $only_modules boolean);            ## 
##                       ## 
## This function returns all the Modules which can be selected in every workflow.   ## 
## The Return value is a string (the HTML-Code for the <select>-Wheel)      ## 
##                       ## 
## $defaultvalue describes the preselected value. If none is set, the toppest (alphabetic ## 
## order) is selected. For more, read param $default_important...       ## 
##                       ## 
## $curr_path describes the path, on which the select's ID is based.       ## 
##                       ## 
## $default_important describes, if it is important to recognize, if no default-value was ## 
## given. If true, every time, no default-value was given, a little star is displayed  ## 
## next to the <select>. If false, this won't be displayed.         ## 
##                       ## 
## $only_modules says, if the complete select tag or only all the <option>-Entrys should be ## 
## returned. So, if set to true, only a list of <option>-Tags will be returned.    ## 
############################################################################################### 
//Get global var $config... In there are the names for the options 
global $config; 
//Calling Global Array $config... 
$options = $config["Indexer"]["Modules"]; //In here are the diffrent options 
//Now creating options wheel... 
$options_wheel = ""; 
if (!$only_modules) { 
    $options_wheel = "<select id=\"" . $curr_path . "_select\" size=\"1\" onchange=\"changeHidBySelect('" . $curr_path . "')\">"; 
} 
$default_set = 0; 
foreach ($options as $key => $value) { 


    $options_wheel .= "<option value=\"" . $options[$key]["Class"] . "\""; 
    if ($options[$key]["Class"] == $defaultvalue) { //in $options[$key]["Class"] are the values saved, e.g. "nr2" 
     $options_wheel .= " selected=\"selected\""; 
     $default_set = 1; 
    } 
    $options_wheel .= ">" . $options[$key]["Class"] . "<"; 
    $options_wheel .= ($only_modules ? "\\" : ""); 
    $options_wheel .= "/option>";   

} 
if (!$only_modules) { 
    $options_wheel = $options_wheel . " 
    </select><input type=\"hidden\" id=\"" . $curr_path . "_hidvalue\" name=\"" . $curr_path . "_hidvalue\" value=\"" . $defaultvalue . "\" /> 
    "; 
} 
if (($default_set == 0)&&($default_important == true)) { 
    $options_wheel .= "*"; 
} 
return $options_wheel; 

}

Et si j'appelle cette fonction maintenant, je l'appelle comme ceci:

echo createOptions($value4,$options_path,true,false); 

valeur4 de $ est le DefaultValue, par exemple supérieur ce serait « nr1 »

Alors, et si je regarde le code maintenant avec firebug ou comme source, il y a parfois un selected = "selected" qui fonctionne, mais dans d'autres cas il y en a un qui ne fonctionne tout simplement pas, et le premier élément est affiché.

+0

Est-ce que cela fonctionne Sur la première page demande peut-être? Avez-vous quelque chose à déterminer après la publication et ensuite faire quelque chose de différent en conséquence? – brumScouse

+0

Pourriez-vous décrire ces cas plus en détail (le travail et le non-travail)? N'oubliez pas de mentionner les informations du navigateur, ... N'oubliez pas que plus de détails vous fournir de meilleures réponses que vous obtiendriez. –

+0

Donc, maintenant c'est assez modifié;) et @brumScouse, je n'utilise pas quelque chose comme postback ou tel, je suis juste en train de sortir le texte, c'est tout. –

Répondre

0

Alors les gars, une autre question auto-résolu dans une heure lors de la publication. Je viens de trouver pourquoi:

J'appelle après tout affichant une fonction JS, qui manipule un div à côté de ce div avec le select, et il semble changer en quelque sorte. Donc, mais maintenant, si j'ai désactivé cette fonction, cela a fonctionné parfaitement. Donc, je vais modifier cette fonction maintenant;) thx pour l'aide