Jump to content
pemoamsi

$_POST a uma combobox

Recommended Posts

pemoamsi

Tenho uma ComboBox que permite ao utilizador seleccionar o pais de origem, de entre uma lista de países da base de dados

<?php

$query = "SELECT name FROM country";

$result = mysql_query($query);

echo "<select name=country value='country' class=\"country\">Country</option>";

while ($nt = mysql_fetch_array($result))
{ 
    echo "<option value=$nt[id]>$nt[name]</option>";
}


?>

Até aqui tudo bem, mas depois queria gravar na base de dados o valor introduzido pelo utilizador, e o comum

 $country = $_POST["country"]; 

não me funciona, o que devo alterar ?

Share this post


Link to post
Share on other sites
scorch

Tenta assim:

<?php

$query = "SELECT name FROM country";

$result = mysql_query($query);

echo "<select name=\"country\" value='country' class=\"country\">Country</option>";

while ($nt = mysql_fetch_array($result))
{
    echo "<option value=\"".$nt["id"]."\">".$nt["name"]."</option>";
}


?>


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
ruimcosta

Ou assim, porque assim o código html será correcto.

$query = "SELECT name FROM country";

$result = mysql_query($query);

echo '<select name="country" value="country" class="country">Country</option>'."\r\n";

while ($nt = mysql_fetch_array($result))
{
    echo '<option value="'.$nt[id].'">'.$nt[name].'</option>'."\r\n";
}


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Habitua-te a utilizar plicas (') em vez de aspas ("). Utiliza aspas, apenas quando queres interpretar a string, por exemplo, trocar o nome de uma variável pelo seu valor. Repara nas alterações:

<?php

$query = 'SELECT name FROM country';

$result = mysql_query($query);

echo '<select name="country" value="country" class="country">Country</option>';

while ($nt = mysql_fetch_array($result))
{ 
    echo "<option value={$nt['id']}>{$nt['name']}</option>";
}

?>

EDIT: Ambas as soluções colocadas anteriormente estão correctas, contudo a minha solução evita o uso de tantas aspas, plicas e concatenações. E, como é óbvio facilita a leitura.

Share this post


Link to post
Share on other sites
brunoais

Só uma pequena correção:

<?php

$query = 'SELECT name FROM country';

$result = mysql_query($query);

echo '<select name="country" value="country" class="country">Country</option>';

while ($nt = mysql_fetch_array($result))
{ 
    echo "<option value='{$nt['id']}'>{$nt['name']}</option>";
}

?>

já 'tá :cheesygrin:

(cda um refina o q o outro fez :thumbsup: )


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
pemoamsi

Pois, obrigado a todos. Reparei na falha do name=country (sem as "), mas infelizmente substituindo todos os códigos (um de cada vez claro) pelo meu, eu continuo a não conseguir imprimir o $coutry :thumbsup:

PS:

<form id='register' action='index.php?do=register' method='post' accept-charset='iso-8859-1'>

Share this post


Link to post
Share on other sites
ruimcosta

Biba,

Tens o teu código dentro de <form action="XXX.php" method="post"> </form>

Tens o botão do tipo submit?

Quando e onde queres gravar o que o utilizador escolhe?


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
pemoamsi

Já não fui a tempo do edit para o ultimo comentário:

<form id='register' action='index.php?do=register' method='post' accept-charset='iso-8859-1'>

O submit:

<input type='submit' name='Submit' value='Submit' />

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

Só uma pequena correção:

<?php

$query = 'SELECT name FROM country';

$result = mysql_query($query);

echo '<select name="country" value="country" class="country">Country</option>';

while ($nt = mysql_fetch_array($result))
{ 
    echo "<option value='{$nt['id']}'>{$nt['name']}</option>";
}

?>

já 'tá :)

(cda um refina o q o outro fez :P )

Então permitam-me refinar... Nunca vi tal código HTML:

<select></option><option></option>.... e nao fecha a tag select, tem uma tag option a fechar indevidamente.... enfim, cá vai o refinamento:

<?php

$query = 'SELECT name FROM country';

$result = mysql_query($query);

echo '<select name="country" class="country"><option  value="country">Country</option>';

while ($nt = mysql_fetch_array($result))
{ 
    echo "<option value='{$nt['id']}'>{$nt['name']}</option>";
}
echo '</select>';

Share this post


Link to post
Share on other sites
ruimcosta

Passo a citar o Brunoais:

(cada um refina o que o outro fez :P )

Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.