2017-07-02 44 views
0

我有一门课程,我正在使用PHP和CSS来建立一个基于网络的游戏。我选择了一个简单的数独版本,在这个版本中用户将他们的值输入到存储在数组中的输入字段中。我想要做的是让输入字段保持输入,即使在按下提交按钮后,最终会检查他们的答案。我发现有些人说你可以使用php将输入字段名称发布到输入字段值,所以在提交后它仍然包含最近输入的值,但是当将值发送到像I这样的数组时,似乎并不奏效。正在做。如何在输入表格并将其发送到数组时保存输入后的值?

我的代码到目前为止(也是我对PHP非常陌生,所以如果我不理解它,我可能不得不要求澄清一个解释),并且感谢所有能够提供任何帮助的人:

<?php 
print_r($_POST["inputs"]); 
//test to see if values are being stored in the array 
?> 

<html> 
<head> 
    <title>Sudoku</title> 
    <link rel="stylesheet" href="main.css" type="text/css"> 
</head> 

<body> 

    <?php 
    function drawTable($rows, $cols){ 
     echo "<form method='post' target=''>"; 
     echo "<table>"; 
     for($i=0;$i<$rows;$i++){ 
      echo "<tr>"; 
       for($j=0;$j<$cols;$j++){ 
        echo '<td><input type="number" id="$i,$j" name="inputs[]" value="" inputs min="1" max="9"></td>'; 

      } 
      echo "</tr>"; 
     } 
     echo "</table>"; 
    } 
    drawTable(9,9); 
    ?> 
    <input type="submit" name="submit" value="Submit"> 


</body> 

</html> 

回答

0

我不喜欢这样的外观:id="$i,$j"我可能会使用下划线,但更重要的是,你需要id属性?对于css原因,有两个值的类属性会更好吗?

至于你name属性,你可以声明一个多维数组是这样的:

inputs[$i][$j]

这应该可以解决你。

请记住,您需要使用if(isset($_POST['inputs'][$i][$j]))... 81次才能将提交的值再次呈现在网格的输入字段中,并避免任何警告/通知。

p.s.我也会删除位于valuemin之间的inputs位。 ...并关闭您的表格</form>

+0

嗨,感谢您的回复。我认为我没有做你说的正确,因为这条线:echo'​​';导致我的.php页面无法加载。你能否指出我在哪里做错了什么?或者是我需要if(isset ...在我回显j循环中的输入字段后? – JLH

+0

@JLH真相被告知,你有几件事要清理,我会让你和你一起工作代码有点长,看看你是否可以自我解决,我现在要睡觉了,我会在早上检查我的消息,继续保持它,祝你好运。回声显示php:'if(isset($ _ POST ['inputs'] [$ i] [$ j])){echo $ _POST ['inputs'] [$ i] [$ j];} – mickmackusa

相关问题