-
May 9th, 2005, 11:50 AM
#1
Senior Member
$_POST in PHP, need help with the code
Could you help me with the next code:
<?php
require ("Functions.php");
#geting the destinations
$link = Connect();
$destinations_query = "SELECT * FROM destinations
WHERE Held_In_Destination > 1";
$destinations_result = mysqli_query($link, $destinations_query);
#creating a form containing a destination list.
#The form will pass on a destination ID to the next form
#that shows hotels in the area.
echo "<form action='MakeAnOrder.php' method='POST'>
<strong>Select Your Destination</strong>
<select name='Destination_Name'>\n";
while ($destinations_row = mysqli_fetch_array($destinations_result))
{
extract ($destinations_row);
echo"<option value = '$Destination_Name'>$Destination_Name\n";
}
echo"</select>\n";
echo "<input type = 'submit' value = 'Select'>
</form>\n";
#Selecting a hotel
$hotels = Hotels(isset($_POST['$Destination_ID']));
echo "<form action='MakeAnOrder.php' method='POST' >
<strong>Select a Hotel</strong>
<select name='Hotel_Name'>\n";
while ($hotels_row = mysqli_fetch_array($hotels))
{
extract ($hotels_row);
echo"<option value = '$Hotel_Name'>$Hotel_Name\n";
}
echo"</select>\n";
echo "<input type = 'submit' value = 'Select'>
</form>\n";
?>
I am trying to influence the output of the second form by the users choice in the first one. Both are based in the same page.
Don\'t post if you\'ve got nothing constructive to say. Flooding is annoying
-
May 9th, 2005, 11:55 AM
#2
What do you mean by "influencing" the output? SQL-injection?
Oliver's Law:
Experience is something you don't get until just after you need it.
-
May 9th, 2005, 12:04 PM
#3
Senior Member
I want a user to chose a name of the destination. The program the should use an ID attached to this name to find the hotels which are based in that destination and output them in to a second dropdown list.
Don\'t post if you\'ve got nothing constructive to say. Flooding is annoying
-
May 9th, 2005, 12:16 PM
#4
You probably need to change this part:
Code:
while ($destinations_row = mysqli_fetch_array($destinations_result))
{
extract ($destinations_row);
echo"<option value = '$Destination_Name'>$Destination_Name\n";
}
Not sure what the extract() function does but I'm guessing you need to change the echo on the next line to:
Code:
echo "<option value='$Destination_ID'>$Destination_Name</option>\n";
Both selects seem incomplete btw...
It should be something like:
Code:
<select id=myselection>
<option value=1>Option 1</option>
<option value=2>Option 2</option>
</select>
Oliver's Law:
Experience is something you don't get until just after you need it.
-
May 9th, 2005, 12:21 PM
#5
Senior Member
Didn't work
Don\'t post if you\'ve got nothing constructive to say. Flooding is annoying
-
May 9th, 2005, 12:26 PM
#6
oh.... This doesn't look right either:
Code:
$hotels = Hotels(isset($_POST['$Destination_ID']));
Im guessing this should be:
Code:
$hotels = Hotels(isset($_POST['Destination_Name']));
This may help:
http://www.w3schools.com/php/php_forms.asp
Oliver's Law:
Experience is something you don't get until just after you need it.
-
May 9th, 2005, 01:24 PM
#7
Senior Member
OK I made some changes to the code.
<?php
require ("Functions.php");
#geting the destinations
$link = Connect();
$destinations_query = "SELECT * FROM destinations
WHERE Held_In_Destination > 1";
$destinations_result = mysqli_query($link, $destinations_query);
#creating a form containing a destination list.
#The form will pass on a destination ID to the next form
#that shows hotels in the area.
echo "<form action='MakeAnOrder.php' method='POST'>
<strong>Select Your Destination</strong>
<select name='Destination_Name'>\n";
while ($destinations_row = mysqli_fetch_array($destinations_result))
{
extract ($destinations_row);
echo"<option value = '$Destination_Name'>$Destination_Name\n";
}
echo"</select>\n";
echo"<input type = 'hidden' name = 'Destination_ID' value = '$Destination_ID'>";
echo "<input type = 'submit' value = 'Select'>
</form>\n";
mysqli_close ($link);
?>
<?php
#Selecting a hotel
$Destination_ID = SelectDestinationID(isset($_POST['Destination_Name']));
echo"$Destination_ID";
$hotels = Hotels('$Destination_ID');
echo "<form action='MakeAnOrder.php' method='POST' >
<strong>Select a Hotel</strong>
<select name='Hotel_Name'>\n";
while ($hotels_row = mysqli_fetch_array($hotels))
{
extract ($hotels_row);
echo"<option value = '$Hotel_Name'>$Hotel_Name\n";
}
echo"</select>\n";
echo "<input type = 'submit' value = 'Select'>
</form>\n";
#When both forms are created, the Destination_ID doesn't transfere to the second form
?>
When I echo a Destination_ID in the second part of the code, it turns out to be fine. But the form still doesn't display the hotel names
Don\'t post if you\'ve got nothing constructive to say. Flooding is annoying
-
May 9th, 2005, 01:25 PM
#8
Senior Member
Here's the code for the Hotels Funsction
function Hotels($Destination_ID)
{
#Connect to the database
$link = Connect();
$query = "SELECT * FROM hotels
WHERE Destination_ID = $Destination_ID";
$result = mysqli_query ($link,$query);
return(object) $result;
}
Don\'t post if you\'ve got nothing constructive to say. Flooding is annoying
-
May 9th, 2005, 01:42 PM
#9
Re: $_POST in PHP, need help with the code
Originally posted here by nightcat
$hotels = Hotels(isset($_POST['$Destination_ID']));
Is the function Hotels() defined somewhere? I'm guessing its in your functions.php include, but without that we can't really tell what is going on. You should probably also parse the destination for the currently selected desitnation and then add a "selected" tag to that line.
Also, why are you ?>ing your php and then reopening immediately. I would suggest just leaving the tag open.
Edit: hah, I guess I should have refreshed. I was editing this for about a half hour while someone was talking to me, and looks like you answered my question in the mean time. Lemme look at it and see whats going on.
-
May 9th, 2005, 01:53 PM
#10
My first suggestion is, if you're not going to functionize the first sql query, why do the second one? Put all of the code into the base .php file and get it working, then you can worry about functionizing it. Also, you only need 1 $link. When you do your functions, you can pass $link to it.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
|