2010-08-27 2 views
0

j'ai une liste déroulante qui est généré dynamiquement grâce à une base de données mySQL en utilisant le code suivant:PHP méthode Get ne pas envoyer entrée complète

$region = mysql_query("select region_name from region", $connection); 

echo "<select name=region>Region</option>"; 

while ($row = $mysql_fetch_array($region)) 
{ 
    echo "<option value =$row[region_name]>$row[region_name]</option>"; 
} 

echo "</select>" 

Ceci affiche la liste parfaitement bien mais lorsque je soumets le formulaire en utilisant la méthode GET tout nom de région qui contient un espace ne sera pas transmis correctement dans l'URL. Au lieu de « South Australia » il ne me donner « Sud »

Je sais que l'URL doit finir par être: http://foo.com/query.php?region=South+Australia

Mais au lieu du + Australie ne semble pas juste.

Quelqu'un sait quel truc stupide j'ai fait ou ce que je manque ??

Répondre

1

utilisation de guillemets simples pour la valeur dans la balise option:

Essayez ceci dans while:

echo "<option value='$row[region_name]'>$row[region_name]</option>"; 
0

Ce serait parce que vous êtes tenu de citer les attributs HTML:

<option value="South Australia">...</option> 

Sinon, comment le navigateur est-il censé faire la distinction entre un attribut et le suivant?

<option value=South Australia>...</option> 

Le navigateur lit que comme un attribut appelé « valeur » avec « Sud » la valeur et un autre attribut appelé « Australia ».

Essayez validating your HTML, il va trouver d'autres erreurs aussi bien, comme le souligne Starx sur ..

1

Il y a une erreur dans votre code .........

echo "<select name=region>Region</option>"; devrait être

echo "<select name='region'><option>Region</option>"; 

et tout en donnant la valeur ce faire

echo "<option value='$row[region_name]'>$row[region_name]</option>"; 
Questions connexes