1,105,578 Community Members

How to pass value from drop down button

Member Avatar
hudhasama
Newbie Poster
13 posts since Jan 2013
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Hello there. Sorry that I don't really know much about drop down button in php. I was assign to do a booking system as my final project but somehow I don't know how to make the button works. It suppost to be like this. The user needs to choose which school he is going to book the locker. And after he has choosen, the numbers of lockers will be listed down and he can choose which one that he wants. But the problem here is, the value from drop down button seems like it can't pass the value from the database. Here is the codes :

<?php 

session_start();

$user = $_SESSION["user_id"];
$pass = $_SESSION["password"];

?>

<form name="booking" method="post" action="booking.php">
    <table width="213" border="0">     
       <tr>
            <td width="300" height="34">Select School</td>
      </tr>
      <tr>
            <td><select name="school">
            <option value="1">SMK Seri Pantai</option>            
            <option value="2">SMK Tengku Sulaiman</option>
            <option value="3">SMK Convent Butterworth</option>
            <option value="4">SMK Dato' Megat Khas</option>
            </select>
            </td>
      </tr>
      <tr>
            <td width="10"> </td>
            <td><input name="submit" type="submit" value="Next">
            <input name="next" type="hidden" id="next"></td>
       </tr>        
    </table>
</form>

I seperated this to so that it won't confuse me much.

<?php 
session_start();

$user = $_SESSION["user_id"];
$pass = $_SESSION["password"];

$conn = mysql_connect("localhost", "root", "") or die ("Could not connect to server");
$db = mysql_select_db("Smartlocker", $conn) or die ("Could not connect to database");
$sql = "SELECT * FROM locker WHERE school='$next' ";
$result = mysql_query($sql) or die ("Could not execute query");
$myrow=mysql_fetch_row($result);

if($myrow=mysql_fetch_row($result))
{
echo "

    <table border='1' bordercolor='C0F7FE'>
        <tr>
            <td><center><strong>School</strong></center></td>
            <td><center><strong>Locker No.</strong></center></td>
            <td><center><strong>Price (RM)</strong></center></td>
            <td><center><strong>Status</strong></center></td>
            <td><center><strong>Book</strong></center></td>
        </tr>";

    do{
    echo "
        <tr>
            <td>$myrow[2]</td>
            <td>$myrow[3]</td>
            <td>$myrow[5]</td>
            <td></td> //I haven't don't this part yet
            <td><form name='booked' action='booking-process.php' method='post'>
                <input type='submit' name='submit' value='Book'>
                <input name='book' type='hidden' id='booked' value='$myrow[0]'> //$myrow[0] is my primary key                
                </form></td>  
        </tr>";

    }while($myrow=mysql_fetch_row($result));

echo "</table>";
}
?>

I hope someone can help me with this. :(

Member Avatar
baig772
Junior Poster
165 posts since Mar 2011
Reputation Points: 19 [?]
Q&As Helped to Solve: 11 [?]
Skill Endorsements: 0 [?]
 
0
 

Please share what you get when you do

ehco "<pre>;
print_r($_POST); 
echo "</pre>";"
Member Avatar
hudhasama
Newbie Poster
13 posts since Jan 2013
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

sorry but what do you mean by that?

Member Avatar
code739
Posting Whiz in Training
213 posts since May 2012
Reputation Points: 17 [?]
Q&As Helped to Solve: 30 [?]
Skill Endorsements: 6 [?]
 
0
 

maybe what baig772 sayin is insert those lines he post from booking.php.

as i cant see you only use $next. maybe @ first should be line this

$next=$_POST['next']

but does not make since cause the school values has
diffirent name so it should be like this

$next=$_POST['school']

should be receiving an int
and for this line

$sql = "SELECT * FROM locker WHERE school='$next' "; 

school column should contains number since the value of you option
are numbers

Member Avatar
code739
Posting Whiz in Training
213 posts since May 2012
Reputation Points: 17 [?]
Q&As Helped to Solve: 30 [?]
Skill Endorsements: 6 [?]
 
0
 
 <option value="1">SMK Seri Pantai</option>
 <option value="2">SMK Tengku Sulaiman</option>
Member Avatar
hudhasama
Newbie Poster
13 posts since Jan 2013
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

okay thanks! I got it. :D but the first data didn't appear. What I mean is, okay it's like this. The data in the database for option 1 that is SMK Seri Pantai, there are 10 data. but it only display 9 data. Do you think there is something missing in the code? =/

Member Avatar
code739
Posting Whiz in Training
213 posts since May 2012
Reputation Points: 17 [?]
Q&As Helped to Solve: 30 [?]
Skill Endorsements: 6 [?]
 
0
 

try using while loop instead of do while i guess =)

Member Avatar
dean8710
Junior Poster in Training
66 posts since Jul 2011
Reputation Points: -3 [?]
Q&As Helped to Solve: 4 [?]
Skill Endorsements: 0 [?]
 
0
 

maybe this help:

index.php

<?php
session_start();
$user = $_SESSION["user_id"];
$pass = $_SESSION["password"];
?>

<form name="booking" method="post" action="booking.php">
    <table width="213" border="0">     
       <tr>
            <td width="300" height="34">Select School</td>
      </tr>
      <tr>
            <td><select name="school">
            <option value="1">SMK Seri Pantai</option>            
            <option value="2">SMK Tengku Sulaiman</option>
            <option value="3">SMK Convent Butterworth</option>
            <option value="4">SMK Dato' Megat Khas</option>
            </select>
            </td>
      </tr>
      <tr>
            <td width="10"> </td>
            <td><input name="submit" type="submit" value="Next">
            <input name="next" type="hidden" id="next"></td>
       </tr>        
    </table>
</form>

2.booking.php

session_start();
$user = $_SESSION["user_id"];
$pass = $_SESSION["password"];

<?php
require_once("../includes/config.php");
require_once("../includes/dbconnect.php");

if (isset($_POST['submit'])) {
    $school = $_POST['school'];

    $sql = mysql_query("SELECT * FROM locker WHERE school_id = '$school'") or die(mysql_error());
    ?>
    <table border='1' bordercolor='C0F7FE'>
        <tr>
            <td><center><strong>School</strong></center></td>
            <td><center><strong>Locker No.</strong></center></td>
            <td><center><strong>Price (RM)</strong></center></td>
            <td><center><strong>Status</strong></center></td>
            <td><center><strong>Book</strong></center></td>
        </tr>
        <?php
        if (mysql_num_rows($sql) > 0) {
            while ($row = mysql_fetch_array($sql)) {
                $looker_id = $row['id'];
                $name = $row['name'];
                ?>
                <tr>
                    <td><?= $school ?> //school id, related from database</td>
                    <td><?= $name ?></td>
                    <td>// Price</td>
                    <td>// Status</td>
                    <td>
                        <form action='booking-process.php' method='post'>
                            <input type='submit' name='submit' value='Book'>
                            <input name='book' type='hidden' value='<?= $looker_id ?>'>          
                        </form>
                    </td>  
                </tr>
                <?php
            }
        } else {
            ?>
            <tr><td colspan="5">No data</td></tr>
            <?php
        }
        ?>
    </table>

    <?php
}
else{
    echo "No data";
}
?>
Member Avatar
hudhasama
Newbie Poster
13 posts since Jan 2013
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

code739 :
while? the data shown is even lesser.

dean8710:
sorry but I don't get what does require_once("../includes/config.php");and require_once("../includes/dbconnect.php"); does. before what I learn is really basic. What is requires inside this includes?

Member Avatar
code739
Posting Whiz in Training
213 posts since May 2012
Reputation Points: 17 [?]
Q&As Helped to Solve: 30 [?]
Skill Endorsements: 6 [?]
 
0
 

@hudhasama

I notice your fetching twice $myrow=mysql_fetch_row($result); as you begin displaying rows

from line 11,13,39

from ther first fetch you got the first row but
the second fetch is on the if condition as the second fetch goes it fetches the second
row
then it enters the do while loop and display the second row instead of first row as what you expects

the displaying of query starts from the second row sinse you are fetching twice as it begin.

my advice is you can remove the line 11 fetcher =)

Member Avatar
ehpratah
Junior Poster
141 posts since May 2012
Reputation Points: 27 [?]
Q&As Helped to Solve: 7 [?]
Skill Endorsements: 2 [?]
 
0
 

sorry but I don't get what does require_once("../includes/config.php");and require_once("../includes/dbconnect.php"); does. before what I learn is really basic. What is requires inside this includes?

to answer your question require_once is just the info of your database and server connection which is in your code the $conn = mysql_connect("localhost", "root", "") or die ("Could not connect to server"); and $db = mysql_select_db("Smartlocker", $conn) or die ("Could not connect to database"); part

Member Avatar
code739
Posting Whiz in Training
213 posts since May 2012
Reputation Points: 17 [?]
Q&As Helped to Solve: 30 [?]
Skill Endorsements: 6 [?]
 
0
 

that should be ok

Member Avatar
hudhasama
Newbie Poster
13 posts since Jan 2013
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

@code739 : Okay I got it.. Thank you!! :D oh my. feel like crying. hihi. Thanks again!

@ehpratah : yea. I finally realize it after I post this. hehe. sorry. and thanks! :D

Question Answered as of 1 Year Ago by code739, dean8710, ehpratah and 1 other
You
This question has already been solved: Start a new discussion instead
Post:
Start New Discussion
View similar articles that have also been tagged: