2012-05-03 40 views
1

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

下面是从代码的形式:

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

因此理想情况下,“全职”价值将有一个风格和“parttime”的价值将有另一种风格。但是当我尝试运行这段代码时,没有任何反应。我肯定会正确连接到数据库。行名被正确标记为“job_type”。任何关于我可能会出错的想法?任何帮助将不胜感激:)

+0

当你echo $ job_type时,输出是什么?你是否尝试过使用$ _REQUEST ['job_type'] –

回答

0

可能是你的PHP的问题。有没有逻辑?

$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> 
+0

这样做了!真棒!非常非常感谢你。超级有用。 – Matt

0

我不相信的条件将工作,你实现它的方式,尝试做这样的:

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

//等等......

0

form.php的

如果您最初设置表单中的一个“选择”,不需要检查其设置,简单设置分贝,像这样:

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

Display.php的

正如你可能会做一个样式,与工作类型标签,你把你的数据库引用选择

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

呀,我会向你发送job_type =“',name ='lamo-admin')#”的请求,表中的所有数据都将丢失。 –

+0

q不会去处理数据,但从数据库中获取它... form.php是为了争辩,这是如何display.php信任数据看起来像 – mschr

+0

谁会命名他们的表X将是要求你跛脚,然后将它们发送出去; p – mschr

0

当你从数据库获取数组您需要使用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']; 
} 
+0

这将是'assoc' – mschr

+0

是的,或者使用与mysql_fetch_array(resource $ result [,int $ result_type = MYSQL_BOTH])相同的'mysql_fetch_assoc()'。 '说@mschr上面 –

+0

嘿,那里,非常感谢回应。我只有几个问题:MYSQL_BOTH做什么?这是如何应用CSS样式的?我是一个新手,所以我很难跟进。谢谢:) – Matt

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

测试:

enter image description here

希望这有助于

+0

嘿,谢谢你的回应。我插入了您的代码,但由于某种原因,它并未从数据库中提取任何内容。 “if(isset($ _ POST [”submit“]))”是做什么的? – Matt

+0

它检查表单是否已提交,更确切地说是否提交了“提交”按钮。你是否改变了查询来适应你的表格。 SELECT * FROM your_table_name WHERE ....在sql db中的列“job_type”中是否有值,例如“partime”和“fulltime”? – Wesley

+0

此外,我还提出了一个打字错误partime应该是兼职,生病的更新解决方案 – Wesley