Jump to content

Archived

This topic is now archived and is closed to further replies.

Bob_

Php Form [Solved]

Recommended Posts

I'm trying to get a drop down menu to work, but I can't seem to get it to work at all. Its got to be in the <?php ?> code as its to get values dynamically.

The list is going to be filled with 2 fields from a MySQL database. The Name field is going to be the text shown in the drop down menu, the value is going to be the value from ID colum in the database.

[code]
<?php
$result = mysql_query("SELECT * FROM client")
or die(mysql_error()); 



echo '<form name="form1" method="post" action="">';
echo '<select name="select">';
//make some short variables
$ID=$row['ID'];//suppy the correct field names below
$Name=$row['Name'];
while($row = mysql_fetch_array( $result )) {
echo '<option value="' . $ID . '">' . $Name . '</option>';
}
echo "</select>";
echo "</form>";

?>[/code]

Although the menu is filled with the correct number of blank entries, but the every option is a " and every value is ' ' Does anyone know what I'm doing wrong?

Share this post


Link to post
Share on other sites
$ID=$row['ID']; & $Name=$row['Name']; Needs to be within the loop to change the data.

[CODE]
<?php
$result = mysql_query("SELECT * FROM client")
or die(mysql_error()); 

echo '<form name="form1" method="post" action="">';
echo '<select name="select">';
//make some short variables
while($row = mysql_fetch_array( $result )) {

$ID=$row['ID'];//suppy the correct field names below
$Name=$row['Name'];


echo '<option value="' . $ID . '">' . $Name . '</option>';
}
echo "</select>";
echo "</form>";

?>
[/CODE]

Share this post


Link to post
Share on other sites
These two lines:
[code]<?php
$ID=$row['ID'];//suppy the correct field names below
$Name=$row['Name'];
?>[/code]
need to be inside the while loop.

Ken

Share this post


Link to post
Share on other sites
LOL, it always seems so obvious after someone points it out to you!

Thanks guys!

Share this post


Link to post
Share on other sites
Right I've got a problem linking from this.

I have set up the next page which which has the  [code]$ID=$HTTP_POST_VARS['ID'];[/code]

To get the value from the above, the only problem is it doesnt get the value.

Any Ideas?

Share this post


Link to post
Share on other sites
Use the superglobal array $_POST instead:
[code]<?php $ID = $_POST['ID']; ?>[/code]

Ken

Share this post


Link to post
Share on other sites
Yehh I tryed that one as well, but it doesnt get a value either.

Share this post


Link to post
Share on other sites
Put
[code]<?php
echo '<pre>$_GET: ' . print_r($_GET,true) . '</pre>';
echo '<pre>$_POST: ' . print_r($_POST,true) . '</pre>';
?>[/code]
at the start of your script to see what is being passed to it.

Ken

Share this post


Link to post
Share on other sites
It returns the following
[quote]
Warning: Wrong parameter count for print_r() in \\www\ViewDetails.php on line 16

$_GET:


Warning: Wrong parameter count for print_r() in \\www\ViewDetails.php.php on line 17

$_POST: [/quote]

Do I have to give a parameter for that to work?

Share this post


Link to post
Share on other sites
What version of PHP are you running? Did you insert the lines exactly as I showed?

If the version of PHP is less than 4.3.0, you would need:
[code]<?php
echo '<pre>';
echo '$_GET: ';
print_r ($_GET);
echo '$_POST: ';
print_r($_POST);
echo '</pre>';
?>[/code]

Ken

Share this post


Link to post
Share on other sites
Its seems to be working.

[code]$_GET: Array
(
)
$_POST: Array
(
    [select] => 2
)
[/code]

Is what it returns, but surely that would mean that the $_POST should have worked?

Share this post


Link to post
Share on other sites
The problem here is that you were looking for the value in the wrong index, You were looking for $_POST['ID'] when the value is in $_POST['select'].

Ken

Share this post


Link to post
Share on other sites

×

Important Information

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.