Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从多维数组中捕获值并将其显示在表单提交时最初输入的文本字段中会遇到问题_Php_Html - Fatal编程技术网

Php 从多维数组中捕获值并将其显示在表单提交时最初输入的文本字段中会遇到问题

Php 从多维数组中捕获值并将其显示在表单提交时最初输入的文本字段中会遇到问题,php,html,Php,Html,我需要关于如何在用户提交后输入值的文本字段中保留输入值的帮助。我在试图找出如何保留这些值时遇到了困难,因为当我单击submit按钮时,页面刷新,然后值消失,我必须重新键入它们 以下是我的表格: <?php $count_name = count($x); ?> <table> <thead> <tr> <th colspan="<?php echo $count_name; ?>"><stron

我需要关于如何在用户提交后输入值的文本字段中保留输入值的帮助。我在试图找出如何保留这些值时遇到了困难,因为当我单击submit按钮时,页面刷新,然后值消失,我必须重新键入它们

以下是我的表格:

 <?php $count_name = count($x); ?>
 <table>
  <thead>
   <tr>
     <th colspan="<?php echo $count_name; ?>"><strong>MR</strong></th>
     <th colspan="<?php echo $count_name; ?>"><strong>MS</strong></th>
  </tr>
  </thead>
  <tbody>
  <?php $_college = mysql_query("SELECT * FROM college");
        if(mysql_num_rows($_college)) {
        $i=0;
        while($row_college=mysql_fetch_array($_college)) { ?>
   <tr>
    <?php for($j=0;$j<$count_name;$j++) { ?> 
     <td>
        <input type="text" name="mr<?php echo $j; ?>[]" value=""/>
     <td>
     <?php } for($k=0;$k<$count_name;$k++) { ?> 
     <td>
        <input type="text" name="ms<?php echo $k; ?>[]" value=""/>
     <td>
     <?php } ?>
   </tr> 
 <?php } $i++;} ?>
 </tbody>
 <table>
 <input type="hidden" value="<?php echo $count_name; ?>" name="totrows"/>
 <input type="submit" value="Submit" name="submit"/>
这里是我的代码,如果按钮提交是点击

<?php

if(isse($_POST['submit'])) {
$y = $_POST['totrows'];
$count_totcriteria = $y;
for($ab=0;$ab<$count_totcriteria;$ab++) {   
    $mr = 'mr_'.$ab;
    $ms = 'ms_'.$ab;

    $mr_score = $_POST[$mr];
    $ms_score = $_POST[$mr];

    foreach($mr_score as $key1 => $val1) {
        if(is_numeric($val1) && !empty($val1)) {
            $mr_val[] = $val1;
        } else {
                $msg = 'All fields are required and must be a valid score';
            }
    }

    foreach($ms_score as $key2 => $val2) {
        if(is_numeric($val2) && !empty($val2)) {
            $ms_str[] = $val2;
            } else {
                $msg = 'All fields are required and must be a valid score';
            }
        }           
    }
}
我知道我必须在“value=”中添加一些代码,以便在提交表单时显示输入的值,但我不确定要使用什么代码。不知道如何捕捉每个数组值。

我认为

<input type="text" name="mr<?php echo $j; ?>[]" value=""/>
假设$i是您的新外环,您正在寻找类似的东西

<input type="text" name="mr_<?= $j ?>[<?= $i ?>]" value="<?= @$_POST['mr_'.$j][$i] ?>"/>
ms线也有同样的变化


这行吗?

什么是$x和$y?$x或$y是随机数,但它们总是相等的。e、 g.如果$x=4,那么$y也是。因此,基本上,文本字段的数量将取决于什么是$x。所以当提交表单时,我也得到$y值,它等于$x;这有助于我检查表单中显示了多少个输入字段。为什么要使用mrN[]而不是mr[N],ms也是如此,其中N是一个数字,或者这只是一个输入错误?如果不是输入错误,那么您是如何处理数组的?我已经修改了上面的代码和这里的JSFIDLE表单。想象一下一场选美比赛,您有mr和ms类别,您有mr和ms类别的标准。您有两列,分别是mr和ms。在每一列下都有另一列,mr和ms的条件列。不,这不起作用,因为mr和ms下的每一列都必须经过验证。想象一场选美比赛,你有先生和女士两个类别,你有先生和女士两个类别的标准。您有两列,分别是mr和ms。在每一列下都有另一列,mr和ms的criteria列。您需要更改$i递增的位置:``。有了这个更改,我成功地让它维护了这些值-上面的代码可以正常工作。。。