POST下拉列表值到下一个php页面

时间:2013-12-18 15:46:39

标签: php

我有一个php页面正在读取文本文件并逐行打印文件。我也给每一行都给了'是''不'选项。现在我想在第二页打印这些行,选择是。如果用户选择是,那么我想将这些行打印到下一页。我有下面的代码。任何人都可以查看这段代码吗?

<?php 
    $i=0; 
    $lines = file("text.txt"); 
    foreach($lines as $line) { 
        $select_val=$line.'-'.$i; 
        print " <br> "; 
        print " <br> "; 
        echo($line); 
        echo '<select name=".$select_val.">'; 
        echo '<option value="Yes">Yes</option>'; 
        echo '<option value="No">No</option>'; 
        echo '</select>'; 
        print " <br> "; 
        print " <br> "; 
        $i++; 
    } 
?> 

<input type="hidden" name="ival" value="$i" /> <? 
print "<input type=submit value=Submit><input type=reset>"; 
?>

第2页:

<?php 
    $i=0; 
    $lines = file("text.txt"); 
    foreach($lines as $line) { 
        $select_val=$line.'-'.$i; 
        $a=$_POST[$select_val]; 
        if ($a == 'Yes') { 
        echo($line); 
        } 
        $i++; 
    } 
?>

1 个答案:

答案 0 :(得分:1)

代码几乎可以实现您想要做的事情,但使用无线电选择而不是下拉列表可以更好地实现2值选择。这样可以提高可用性,因为通过一个动作与一个需要两个动作的下拉选择来实现无线电点击。

echo '<input type="radio" name="' . $select_val . '" id="' 
     . $select_val . 'yes" value="Yes" /><label for="' 
     . $select_val . '1"> Yes</label> ';
echo '<input type="radio" name="' . $select_val . '" id="' 
     . $select_val . 'no" value="No" /><label for="' 
     . $select_val .'no"> No</label> ';

您的原始代码有一些格式错误。如果你要为echo语句使用单引号,你必须将变量与单引号连接起来以返回到这样的PHP解析(推荐方法):

echo '<select name="' . $select_val . '">';

或使用这样的双引号(同时转义select标签内的双引号):

echo "<select name=\"$select_val\">";

否则,select标签将显示为(使用原始代码)

<select name=".$select_val.">

而不是

<select name="line-0">

检查PHP脚本的HTML输出,你会看到这一点。