【问题标题】:How to display radio button value using PHP如何使用 PHP 显示单选按钮值
【发布时间】:2012-05-13 12:02:55
【问题描述】:

所以我有一个用户用一些单选按钮填写的表单。单选按钮的值被传递给 MySQL。我现在想从数据库中提取这些值,将它们显示在不同页面的表格中,并使用 span 标签对它们应用不同的样式。

这是表单中的代码:

<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 />

这是我要显示的页面的代码:

<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>

因此,理想情况下,“全职”值将具有一种样式,而“兼职”值将具有另一种样式。但是当我尝试运行这段代码时,什么也没有发生。我肯定正确连接到数据库。并且行名称正确标记为“job_type”。关于我可能出错的地方有什么想法吗?任何帮助将不胜感激:)

【问题讨论】:

  • echo $job_type 的输出是什么?您是否尝试过使用 $_REQUEST['job_type']

标签: php mysql html radio-button


【解决方案1】:

首先,你的表单应该是这样的:

<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>

您要显示的页面应如下所示:

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>';

}

和 CSS:

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

测试:

希望对你有帮助

【讨论】:

  • 您好,感谢您的回复。我插入了您的代码,但由于某种原因它没有从数据库中提取任何内容。 "if(isset($_POST["submit"]))" 是做什么的?
  • 它检查表单是否已提交,更准确地说“提交”按钮是否已提交。您是否更改了查询以适合您的表格。 SELECT * FROM your_table_name WHERE.... sql db 中的“job_type”列是否也有诸如“parttime”和“fulltime”之类的值?
  • 我也犯了一个错字parttime应该是parttime,生病更新解决方案
  • 是的,我用正确的表名更新了查询,但由于某种原因仍然没有拉任何东西......我一定在某个地方犯了错误。当我这样做时,我将数据从表中输出... 这会将所有全职和兼职价值输出到表中...所以问题是如何设置全职与兼职不同的样式...
  • 你想把所有的兼职和全职都拉到一起,但只是风格不同吗?还是您想根据所选收音机将它们拉出并设置不同的样式?
【解决方案2】:

可能是您的 php.ini 中的问题。有什么逻辑吗?

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

您是否设置了 $job_type 变量?可能你需要这样的东西:

<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>

【讨论】:

  • 做到了!惊人的!非常非常感谢你。超级有帮助。
【解决方案3】:

form.php

如果您最初在表单中设置了一个“已选择”,则不需要检查其设置,简单的设置数据库如下:

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

显示.php

由于您可能会制作样式表,请使用您放入数据库中的 job_type 标签引用选择器

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

【讨论】:

  • 是的,我将向您发送带有 job_type="', name='lamo-admin')#" 的请求,您在表中的所有数据都将丢失。
  • q 不会输入数据而是从 db 中取出数据... form.php 是为了争论,这就是 display.php 信任数据的样子
  • 谁会命名他们的表 X 会要求你是跛脚并发送给他们利用反正;p
【解决方案4】:

当您从数据库中获取数组时,您需要使用 MYSQL_BOTH 来按名称获取列。

   mysql_fetch_array($res, MYSQL_BOTH)

所以你应该有这样的东西:

$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'];
}

【讨论】:

  • 是的,或者使用mysql_fetch_assoc(),与上面@mschr 所说的mysql_fetch_array(resource $result [, int $result_type = MYSQL_BOTH ]) 相同
  • 您好,非常感谢您的回复。我只是有几个问题:MYSQL_BOTH 是做什么的?这如何应用 CSS 样式?我是新手,所以很难跟上。谢谢:)
【解决方案5】:

我不相信条件会按照您实施的方式起作用,请尝试这样做:

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

//等等...

【讨论】:

    猜你喜欢
    • 2016-04-09
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    相关资源
    最近更新 更多