Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dynamic PHP Dropdown Menu for Countries

Okay so I have a table called Countries and it looks like this:

---------------------------
|Country      |    Code   |
---------------------------
|Afganastan   |     AF    |
|ÅLAND ISLANDS|     AX    |
|  etc.       |     etc.  |
---------------------------

The thing that I want to do is create a dynamic menu in which the user chooses a country and that itself gets stored as a value that I can call after the user hits submit.

I did try something here but I'm not sure what its doing because I am still new to PHP and HTML to the point where I just type things in to see what would happen.

Anyways I am really stuck and I tried using google and the search feature in this site and nothing I found worked for me...

The code I tried is this:

<select>
    <?php
        $result = mysql_query('SELECT Country FROM Countries');

        echo '<select name="country">';

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

        echo '</select>';
    ?>

   </select>

The result is supposed to look like a dropdown menu with the list of countries from the database in it. But this doesn't work and just shows this in the drop down:

.$row['name']

Which is nothing close to what I want because that's not even a country. when I remove that part of the code, then there is no option for the user to choose, the menu is empty.

EDIT My code so far that still doesn't work:

<select name = 'country'>
    <?php

    include ("account.php");
    include ("connect.php");

        $result = mysql_query('SELECT Code , Country FROM Countries');
        while ($row = mysql_fetch_array($result))
            {?>

            <option value="<?php echo $row['Code']?>"><?php echo $row['Country']?></option>

            <?php}

    ?>

   </select>

The include ("account.php"); and include ("connect.php"); lines allow me to connect to my database.

like image 501
shade917 Avatar asked Apr 15 '26 07:04

shade917


1 Answers

you code should be something like this

$host = "localhost";
$user = "root";
$pass = "yourpassword";
$db   = "databasename";

// This part sets up the connection to the 
// database (so you don't need to reopen the connection
// again on the same page).
$ms = @mysql_connect($host, $user, $pass);
if ( !$ms )
{
echo "Error connecting to database.\n";
}

// Then you need to make sure the database you want
// is selected.
@mysql_select_db($db);


<form method = "POST" action = "abc.php">
<select name = 'country'>
<?php
$result = mysql_query('SELECT id , name FROM Countries');
while ($row = mysql_fetch_array($result))
    {?>
       <option value="<?php echo $row['id']?>"><?php echo $row['name']?></option>
    <?php}
?>
<input type = "submit" value = "Submit">
</form>

Now in php use this

echo '<pre>';
print_r($_POST);

And you will see what user selected. Check your settings there might be some problem.

like image 197
Muhammad Raheel Avatar answered Apr 17 '26 23:04

Muhammad Raheel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!