在使用下拉菜单变量创建在 PHP 中填充这些变量的表时遇到问题


Having problems using drop-down menu variables to create a table filled with these variables in PHP

我是PHP初学者,我被困在学校的作业上。我必须创建 6 个不同的下拉菜单(num1、num2、num3、num4、行、列(,每个菜单都包含数字 1 到 10。然后,我确保表单已提交,并且只有当它完全提交时,我必须使用变量根据偶数和奇数创建表。

<form method="post" action="prelab2.php">
<select name="num1">
<option>Pick one</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>

上面是下拉菜单,现在这是我真正卡住的地方。

<?php
$_POST['submit'];
$num_1=$_POST['num1'];
$num_2=$_POST['num2'];
$num_3=$_POST['num3'];
$num_4=$_POST['num4'];
$rows=$_POST['rows'];
$cols=$_POST['cols'];
?>

我想出了如何_POST变量 $,但是我如何将这些变量(仅在提交时(转换为表?

这是我作业的链接

欢迎来到 SO。 $_POST['submit']不是必需的。在 PHP 脚本中,为表创建 HTML,然后根据需要<?php echo $num_1; ?>(或其他(。HTML 必须在 PHP 代码之外。

$_POST['submit'];这样的行没有副作用...也就是说,它什么都不做。您只是读取变量值,而不是将其存储在任何地方。

您正在搜索的内容似乎echo。它将内容写入输出,在您的情况下是 HTML 页面。

在模板样式中,您可以通过以下方式使用它:

<?php
    // initial PHP code (reading form value, etc.)
    $title = 'Foo';
    // after the closing tag, starts the output
?>
<html>
    <title><?php echo $title; ?></title>
    <!-- remaining of your HTML -->
</html>

请注意嵌入到 HTML 标记中的 PHP echo 语句。

所以现在,你只需要按照预期编写你的HTML页面,使用你自己的变量......

从这里开始: http://www.w3schools.com/tags/tag_option.asp

<select>
  <option value="n1">Volvo</option>
  <option value="n2">Saab</option>
  <option value="n3">Opel</option>
  <option value="n...">Audi</option>
</select>
<?php $n1 = $_POST['n1']; ?>
if(isset($_POST['submit'])) 
{
//check if form is submitted
echo '<table style="border:colapse">'; //css trick to make nicer borders
//get post vars
$num_1=$_POST['num1'];
$num_2=$_POST['num2'];
$num_3=$_POST['num3'];
$num_4=$_POST['num4'];
//put number values in array
$nums=array($num_1,$num_2,$num_3,$num_4);
//sort array -> we will need it for outpu
sort($nums);

$rows=$_POST['rows'];
$cols=$_POST['cols'];
for($i=0;$i<$rows;$i++) 

{
//print rows in loop
echo '<tr>';
for($j=1;$j<=$cols;$j++) 
//now print colums -> starting from one!
{

echo '<td style="border:1px solid black;width:100px;height:20px">';
//modulo operator, to check if we are inside even or odd column
if($j % 2 == 0) {

foreach($nums as $num)
// loop thorough array of numbers
{
//if number is even -> print it 
    if($num % 2==0) {
        echo $num;
    }


}   

}
else  {
    //if we are in odd row


    foreach($nums as $num)
{
    //print odd numbers
    if($num % 2 !=0) {
        echo $num;
    }


}   
}


echo '</td>';   

}

echo '</tr>';  



}



echo '</table>';


}

附言我知道这可能会得到很多反对票,但是... :)