2017-05-04 5 views
1

2つのネストされたフォームを処理する方法を理解しようとします。最初のものは、選択肢ドロップダウンからanother_file.phpにデータを送信します。ネストされたものは、チェックボックスから現在のファイルにデータを送信する必要があり、isset($_POST['...'])で処理する必要があります。ここに私の簡略化されたコードがあります:HTML/PHPでネストされたフォームを処理する

if (isset($_POST['a'])) 
     { 
     // do something 
     } 

      if (isset($_POST['b'])) 
     { 
     // do something else 
     } 

     echo "<form action='another_file.php' method='post'>"; // begin of first form 
      echo "<table class ='table table-hover table-condensed table-striped table-bordered'>"; 
      echo "<thead>"; 
      echo "<th>ID</th><th>Jídlo</th><th>Množství</th><th>por_cislo</th><th>Odebrat</th>"; 
      echo "</thead>"; 
      while($rows = $stmt->fetch()){ 

       echo "<tr><td>" . $rows['id'] . "</td><td>".$rows['jidlo']; 
       echo "<select name =".$rows['id']."_".$rows['por_cislo']."> "; 
       $stmt2 = $db->query($q2); 
       echo "<option value ='nic'> (vyberte potravinu) </option>"; 
       $max_por_cislo = $rows['por_cislo']; 
       while($rows2 = $stmt2->fetch()) 
       { 
        echo '<option value="'.$rows2['id'].'">'.$rows2['jidlo'].'</option>'; 
       }; 
       echo "</select>"; 
        echo "</td> <td>" . $rows['mnozstvi'] . "g <input name = '".$rows['por_cislo']."' type='text' value = '-'></td><td>".$rows['por_cislo']."</td>"; 
echo "<td><form action ='this_file.php' method = 'post'>"; // begin of nested form 
     echo "<input type='checkbox' id='atur_peg' name='idecko[]' value=".$rows['id']."*".$rows['por_cislo']." /></td></tr> "; 

      }; 
      echo "<input type='hidden' name='pc' value=".$plan_cislo.">"; 
      echo "<tr><td colspan='2'><input name = 'go' type='submit' value='OK'/></td><td colspan='2'><input type = 'submit' name ='a' value='ADD'/></td>"; 
      echo "<td><input type = 'submit' name ='b' value='DELETE checked'/></form></td></tr>"; // end of nested form 

      echo "</table>"; 
     echo "</form>"; // end of first form 

Is 

これを行う方法はありますか?

+0

あなたのコードにはいくつかのエラーがあります。なぜなら、while($ rows = $ stmt-> fetch())では、$ stmt-> fetchに割り当てているため、whileループは決して終了しません。そして、私は本当にここで質問されることを得ているわけではありません、あなたは精巧にお聞かせください。 – RepeaterCreeper

+0

@RepeaterCreeperあなたは間違っています。このことは正しく機能します。明らかに、それは私が把握しようとしている問題ではありません... – DRINK

答えて

0

入れ子になっているフォームの代わりに、jqueryを使用してチェックボックスをオンにし、フォームアクションURLを変更します。この行の何か..必要に応じて同じものを変更する必要があります。

$(document).ready(function(){ 
$("#formname").on("change", "input:checkbox", function(){ 
    if($(this).is(":checked")) { 
     $('#formName').attr('action', 'this_file.php'); 
     $("#formname").submit(); 
    } 

}); 

});

関連する問題