2010-12-11 12 views
1

私は次のようになりますHTMLフォームを持っています。 ids(「to」チェックボックスの値)のリストしか取得できません。私が間違ってやっている何HTMLフォームの複数のフィールドが

$cnt = 0; 
for($p = 0; $p <= (sizeof($to)-1); $p++) 
{ 
echo $to[$p].$name[$p].$years[$p]"<br>"; 
$cnt++; 
} 

$tm = array($cnt); 

PHPコードは次のようになりますか?

答えて

0

更新


ここでは、あなたがissetを使用してチェックされているチェックボックスを得ることができる方法である。

if ($_SERVER['REQUEST_METHOD'] === 'POST'){ 
    $cnt = 0; 
    for($p = 0; $p <= (sizeof($_POST['to'])-1); $p++) 
    { 
    if (isset($_POST['to'][$p])) 
    { 
     echo $_POST['to'][$p] . $_POST['name'][$p] . $_POST['years'][$p] . "<br>"; 
     $cnt++; 
    } 
    } 

    $tm = array($cnt); 
} 

あなたはPOST配列からフィールドを取得されていません、ここではどのようにあなたのコードがあります

$cnt = 0; 
for($p = 0; $p <= (sizeof($_POST['to'])-1); $p++) 
{ 
    echo $_POST['to'][$p] . $_POST['name'][$p] . $_POST['years'][$p] . "<br>"; 
    $cnt++; 
} 

$tm = array($cnt); 

は、フォームが、この状態でそれを置くことによって送信されたときに、コードの上に実行されることを確認してください:

if ($_SERVER['REQUEST_METHOD'] === 'POST'){ 
    $cnt = 0; 
    for($p = 0; $p <= (sizeof($_POST['to'])-1); $p++) 
    { 
    echo $_POST['to'][$p] . $_POST['name'][$p] . $_POST['years'][$p] . "<br>"; 
    $cnt++; 
    } 

    $tm = array($cnt); 
} 

そして最後に、彼らはセキュリティ上の問題を提起しており、簡単にできるため、あなたが短いPHPタグに<?=?>を使用しないでください少しの提案を画像やXMLに埋め込まれます。

+0

@Sarfrazを試してみてくださいいけない - 私は同じエラーを取得します。リストされた "to"値は正しいが、他のすべての値はフォームの最初のフィールドの値で始まる(チェックされていない)。私は、チェックボックスをマークしたフォームから値のリストを取得したい。 – Sergio

+0

@Sergio:更新情報をご覧ください。 – Sarfraz

+0

@Sarfraz - これは私が得た結果です:id-of-selected-field | | yaers-of-field1 – Sergio

0

チェックボックスがチェックされていなくても、正常にコントロールされていることを期待している(仕様では、そうではありません)。

あなたはおそらくの線に沿って何か行う必要があります。

<input name="name[<?php echo htmlspecialchars($i['id']); ?>]" 
     value="<?php echo htmlspecialchars($i['name']); ?>" /> 
<input name="years[<?php echo htmlspecialchars($i['id']); ?>]" 
     value="<?php echo abs($age);?>"/> 
0

をなぜあなたはちょうど

$cnt = 0; 

foreach ($_POST['to'] as $k => $to){ 
    echo $_POST['to'][$k] . $_POST['name'][$k] . $_POST['years'][$k] . "<br />"; 
    $cnt ++; 
} 

$tm = array ($cnt); 
+0

問題は、 "name"と "years"の場合の$ kの値は常にゼロで始まり、選択された値ではないことです。その結果、私は常に最初のフィールドの値を取得しますが、選択したフィールドの値は取得しません。 – Sergio

関連する問題