从POST填写html php表中的数据

时间:2017-04-07 13:58:23

标签: php mysql arrays html-table http-post

我想填写表格中的数据。我从Sessions和POST中获取值。

有一种方法可以让我得到我想要放在表格中的值。

if ( isset($_POST) ) {

    //$valuee[] = array();  
    foreach ( $_POST as $key => $value )
        //$valuee[] = str_split($value, 3); 
        var_dump($value);
        //extract($valuee);
    { 
        $cr = explode( "&",$key ); // ◄■■ SPLIT : [0]="CORP_RESP",[1]="1".
    }

    mysqli_query( $con,"insert into respostas 
                            (menuid,corp_resp,id,data,
                            id_avaliacao) " . 
                        "values ('{$cr[1]}','$value', '{$cr[2]}', 
                                 '{$cr[5]}', '{$cr[3]}')" );
}

这是我想要从var_dump($value)添加到表中的输出。

  

string(4)“0.00”string(4)“0.00”string(4)“0.45”string(4)“0.00”string(4)“0.00”string(4)“0.50”string(4)“ 0.65“string(4)”0.75“string(4)”0.00“string(4)”0.00“string(4)”0.00“string(4)”0.60“string(4)”0.65“string(4)”0.00 “string(4)”0.00“string(4)”0.60“

有构建表的代码。根据POST之前选择的内容,该表是动态的。代码需要处理列数和行数。

$s2 = $_SESSION['categorias'];
$utilizador = $_SESSION['utilizador'];
$uCount = $_SESSION['cparametro']; 
$carCount = $_SESSION['ncategoria'];

$table ="<center><table><tr><center><td>Parametro</td></center>";

for($x = 0; $x < $carCount; $x++){
    $val= htmlspecialchars($s2[$x], ENT_HTML5 | ENT_COMPAT, 'UTF-8');
    $table= $table."<td>".$val."</td>";
}

$table = $table."</tr>";
for($i = 0 ; $i <$uCount ; $i++ ){
    $table = $table."<tr><td>".$utilizador[$i]."</td>";

    for($j=0;$j<$carCount;$j++){

        $val= htmlspecialchars($s2[$j], ENT_HTML5 | ENT_COMPAT, 'UTF-8');
        $table = $table."<td>";
        $table = $table.$value;
        $table = $table."</td>";
    }    
}


$table = $table."</tr>";
$teste = "Resultado";
$table= $table."<center><td>$teste</td></center>";

$table = $table."</table>";
echo $table;

$table = $table.$value;在哪里需要传递正确的值,所有这些都在填充之前,而不是仅传递最后一个?表的其余部分是正确的。

就像你在图片中看到的输出是什么:

在POST之前:

enter image description here

POST后:

enter image description here

新输出:

enter image description here

1 个答案:

答案 0 :(得分:0)

这看起来非常复杂,导致无法识别问题,但总之; 问题是你正在使用:

$table = $table.$value;

但是$ value不是正确的变量,你应该使用:

$table = $table.$val;

更长的想法: 如果您想改进代码,可以使用这种表示法:

$table.= "append to the var"

而不是:

$table = $table . "append to var"

它使它更具可读性,但我认为你可以进一步简化它......

为什么你有$ carcount和$ s2?

我认为$ carcount会告诉你$ s2中有多少类别,但你可以使用count($ s2)来代替,这会减少代码量,也可以减少$ uCount和$ utilizador

这也会做同样的事情,并开始变得更具可读性,我确信它可以更加简化,但这是我几分钟后就能做到的事情:

$s2 = $_SESSION['categorias'];
$utilizador = $_SESSION['utilizador'];


$table ="<table><tr><center><td>Parametro</td>";

foreach($s2 as $cat){
    $val= htmlspecialchars($s2[$cat], ENT_HTML5 | ENT_COMPAT, 'UTF-8');
    $table.= "<td>".$val."</td>";
}

$table .= "</tr>";
foreach($utilizador as $util){
    $table.= "<tr><td>".$util."</td>";

    foreach($s2 as $cat){

        $val= htmlspecialchars($cat), ENT_HTML5 | ENT_COMPAT, 'UTF-8');
        $table.="<td>$val</td>";

    }    
}

$table.= "</tr>";
$table.= "<td>Resultado</td>";

$table.="</table>";
echo $table;

如果你把它放在一个函数中,并且从你需要表的位置调用该函数,那就更好了。