Matt
Matt

Reputation: 25

How to display radio button value using PHP

So I have a form that users fill out with some radio buttons. The values from the radio buttons get passed to MySQL. I now want to pull those values from the database, display them in a table on a different page, and apply different styles to them with span tags.

Here's the code from the form:

<input class="radio_style" type="radio" name="job_type" value="fulltime"/>Full-time<br/>
<input class="radio_style" type="radio" name="job_type" value="parttime"/>Part-time<br />

Here's the code for the page where I want to display it:

<div class='job_type_div'>
    <?php if($job_type=='fulltime') {?>
        <span class='job_type_style'>
            <?php echo $row['job_type']; ?>
        </span>
   <?php if($job_type=='parttime') {?>
        <span class='job_type_style2'>
            <?php echo $row['job_type']; ?>
        </span>
            <?php } ?>
    <?php } ?>
</div>

So ideally, the "fulltime" value will have one style and the "parttime" value will have another style. But when I try running this code, nothing happens. I'm definitely connecting to the database correctly. And the row name is properly labelled "job_type". Any ideas on where I might be going wrong? Any help would be greatly appreciated :)

Upvotes: 1

Views: 8925

Answers (5)

Wesley
Wesley

Reputation: 285

First of all, your form should be something like so:

<form action="page_you_want_to_display.php" method="POST">

    <label for="type">Job Type:</label>

    <label for="fulltime">
        <input class="radio_style" id="fulltime" name="job_type" type="radio" value="fulltime">
        Fulltime
    </label>

    <label for="parttime">
        <input class="radio_style" id="parttime" name="job_type" type="radio" value="parttime">
        Part Time
    </label>

    <input name="submitted" type="submit" value="Submit">

</form>

The page you want to display on should look something like this:

if(isset($_POST["submitted"])){

    $job_type = $_POST['job_type'];

    echo '<div class="job_type_div">';

        if($job_type=='fulltime'){

            $res = mysql_query("SELECT * FROM jobs WHERE job_type='fulltime'");

            while ($row = mysql_fetch_assoc($res)) {

                echo '<div class="fulltime">';

                    echo $row['job_title'].' - '.$row['job_type'];

                echo '</div>';

                echo '<br>';

            }

        } elseif ($job_type=='parttime'){

            $res = mysql_query("SELECT * FROM jobs WHERE  job_type='parttime'");

            while ($row = mysql_fetch_assoc($res)) {

                echo '<div class="parttime">';

                    echo $row['job_title'].' - '.$row['job_type'];

                echo '</div>';

                echo '<br>';

            }               

        }

echo '</div>';

}

and CSS:

.fulltime {
    margin:0px;
    padding:5px;
    width:300px;
    background:#9C0;
    color:#fff;
}   
.parttime {
    margin:0px;
    padding:5px;
    width:300px;
    background:#069;
    color:#fff;
}

Tested:

enter image description here

Hope this helps

Upvotes: 2

El&#39;
El&#39;

Reputation: 439

may be problem in your php. Is there some logic?

$job_type=null;
if($job_type=='fulltime'){
   ...
   if($job_type=='parttime'){
      ...
   }
}

did you set $job_type variable? May be you need something like this:

<div class='job_type_div'>
    <?php if($row['job_type']=='fulltime') {?>
        <span class='job_type_style'>
            <?php echo $row['job_type']; ?>
        </span>
   <?php } elseif($row['job_type']=='parttime') {?>
        <span class='job_type_style2'>
            <?php echo $row['job_type']; ?>
        </span>
    <?php } ?>
</div>

Upvotes: 0

mschr
mschr

Reputation: 8641

form.php

if you initially set one 'selected' in your form, dont need to check if its set, simple set db like so:

...
mysql_query("UPDATE X SET (job_type='{$_GET['job_type']}') WHERE Y");
...

display.php

As you will probably be making a stylesheet, reference the selectors with the job_type labels, which you put in your database

while($row = mysql_fetch_assoc($resultsource))
   echo "<div class='job_type_div'> <span class='{$row['job_type']}_style'>{$row['job_type']}</span>";

Upvotes: 0

dr.dimitru
dr.dimitru

Reputation: 2702

While you fetching your array from Data Base you need to use MYSQL_BOTH, to fetch columns by Name.

   mysql_fetch_array($res, MYSQL_BOTH)

So you should have something like this:

$job_type_query = "SELECT * FROM `job`; ";

$res = mysql_query($job_type_query) or die(mysql_error());
while ($row = mysql_fetch_array($res, MYSQL_BOTH))
{
   echo $row['job_type'];
}

Upvotes: 0

Nir Alfasi
Nir Alfasi

Reputation: 53525

I don't believe that the conditions will work the way you implemented it, try doing it like this:

<?php
echo "<div class='job_type_div'>";
if($job_type=='fulltime') {
        echo "<span class='job_type_style'>"

//etc...

Upvotes: 0

Related Questions