0

5x2 HTML テーブルがあります: http://jsfiddle.net/duxTU/

  • テーブルはフォームに含まれています。
  • フォームが送信されると、同じページにリダイレクトされます
  • 入力フィールド値は連想配列に格納されます
  • 値は、最初に入力されたそれぞれのフィールドに表示されます。

コード:

<?php 
if(isset($_POST['submit'])) {
    $contacts_array  array(
        $_POST["name1"] => $_POST['name2'],
        $_POST["name3"] => $_POST['name4'],
        $_POST["name5"] => $_POST['name6'],
        $_POST["name7"] => $_POST['name8'],
        $_POST["name9"] => $_POST['name10']);

$array_filtered=array_filter($contacts_array);  
$arrayKeys = array_keys($array_filtered);
$arrayValues = array_values($array_filtered);
}
?>

入り込む可能性のある null 値を除外するために、配列がフィルター処理されています。

では、HTML フォームに値を表示するにはどうすればよいでしょうか。スティッキーフォームについては知っていますが、フォームサイズを一定(5x2)に保つ必要があるため、次のようなコードを使用しようとしています

<input type="text" value="<?php echo $arrayKeys[0]; ?> ">  
<input type="text" value="<?php echo $arrayValues[0]; ?> ">

... $arrayKeys[4] と $arrayValues[4] まで、それぞれ。

これにより、未定義のオフセットが得られます。たとえば、送信$arrayKeys[5]前にそれぞれのフォーム列に値が入力されなかったため、設定されていませんでした。

この問題の解決策はありますか??

4

2 に答える 2

0

値を表示するだけの場合は、次のようにするforeachとうまくいきます。

foreach ($array_filtered as $k=>$v) {
   echo "<input type='text' value='".$k."'>";
   echo "<input type='text' value='".$v."'>";
}

foreach配列をループします。$k現在のキーです。$vは現在の値です。

もちろん、これはフォーム HTML 内にある必要があります。

于 2013-07-10T06:28:31.883 に答える