2017-07-02 43 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

相關問題