2016-10-18 9 views
0

方法は、私はそれが動作するループの外のフォームを置けば フォーム内Liとループ

<?php 
for ($j = 0; $j < sizeof($subcat); $j++) { 
    if($subcat[$j][3]==$cat[$i][0]){ 
    ?> 
    <li> 
    <form name="form_producto_menu" action="" method="GET"> 
     <input class="btn-menu-prod" type="button" value="<?php echo $subcat[$j][1];?>" onclick="test();"> 
     <input type="hidden" name="categoria" value="<?php echo $cat[$i][0]; ?>"> 
     <input type="hidden" name="subcategoria" value="<?php echo $subcat[$j][0]; ?>"> 
    </form> 
    </li> 
<?php 
    } 
} 
?> 

リー内IAMのは、フォームに問題がされたボタンを押したときに任意の値をrecivingないIAM動作しない取得罰金しかし、私は、ループ内と外の病気配列を繰り返し、長いrecive becuaseタグ李内側にそれを必要とするが、それは内部であれば病気これは私が欲しいものであると動作していない私は

を打つだけのボタンを取得:

<?php 
require_once ('db/consultas.php'); 
$reg = new Consultas(); 
$cat=$reg->SelectCategoria(); 
$subcat=$reg->SelectSubCategoria(); 
if (isset($_GET['categoria'])) { 
print_r($_GET); 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<title>Productos</title> 
<?php include 'head.php'; ?> 
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 
</head> 
<body> 

<?php include 'header.php' ?> 
<div class="col-lg-2 col-sm-3 " style="padding:0; margin:0;"> 
    <div class="contenedor-menu" style="margin-top: 100px;"> 
     <a href="#" class="btn-menu">Menu <i class="fa fa-bars"></i></a> 
     <ul class="menu-producto "> 
      <li><a href="#"><i class="icono izquierda fa fa-home" aria-hidden="true"></i>Inicio</a></li> 
      <?php 
      for ($i = 0; $i < sizeof($cat); $i++) { 
       ?> 
       <li><a href='#'><?php echo $cat[$i][1]; ?><i class='icono derecha fa fa-chevron-down' aria-hidden='true'></i></a> 
        <ul> 
         <?php 
         for ($j = 0; $j < sizeof($subcat); $j++) { 
          if($subcat[$j][3]==$cat[$i][0]){ 
           ?> 
           <li> 
            <form name="form_producto_menu" action="" method="GET"> 
             <input class="btn-menu-prod" type="button" value="<?php echo $subcat[$j][1];?>" onclick="test();"> 
             <input type="hidden" name="categoria" value="<?php echo $cat[$i][0]; ?>"> 
             <input type="hidden" name="subcategoria" value="<?php echo $subcat[$j][0]; ?>"> 
            </form> 
           </li> <?php 
          } 
         } 
         ?> 
        </ul> 
       </li> 
       <?php 
      } 

      ?> 
     </ul> 
    </div> 
</div> 
<div class="container-productos-main col-lg-10 col-sm-9"> 
    <div class="container-productos "> 
     d 
    </div> 
</div> 
<?php include 'footer.php'; ?> 
</body> 
</html> 

これは動作しますが、私は必要はありません何:

<?php 
require_once ('db/consultas.php'); 
$reg = new Consultas(); 
$cat=$reg->SelectCategoria(); 
$subcat=$reg->SelectSubCategoria(); 
if (isset($_GET['categoria'])) { 
print_r($_GET); 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<title>Productos</title> 
<?php include 'head.php'; ?> 
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 
</head> 
<body> 
<form name="form_producto_menu" action="" method="GET"> 

<?php include 'header.php' ?> 
<div class="col-lg-2 col-sm-3 " style="padding:0; margin:0;"> 
    <div class="contenedor-menu" style="margin-top: 100px;"> 
     <a href="#" class="btn-menu">Menu <i class="fa fa-bars"></i></a> 
     <ul class="menu-producto "> 
      <li><a href="#"><i class="icono izquierda fa fa-home" aria-hidden="true"></i>Inicio</a></li> 
      <?php 
      for ($i = 0; $i < sizeof($cat); $i++) { 
       ?> 
       <li><a href='#'><?php echo $cat[$i][1]; ?><i class='icono derecha fa fa-chevron-down' aria-hidden='true'></i></a> 
        <ul> 
         <?php 
         for ($j = 0; $j < sizeof($subcat); $j++) { 
          if($subcat[$j][3]==$cat[$i][0]){ 
           ?> 
           <li> 

             <input class="btn-menu-prod" type="button" value="<?php echo $subcat[$j][1];?>" onclick="test();"> 
             <input type="hidden" name="categoria" value="<?php echo $cat[$i][0]; ?>"> 
             <input type="hidden" name="subcategoria" value="<?php echo $subcat[$j][0]; ?>"> 

           </li> <?php 
          } 
         } 
         ?> 
        </ul> 
       </li> 
       <?php 
      } 

      ?> 
     </ul> 
    </div> 
</div> 
</form> 
<div class="container-productos-main col-lg-10 col-sm-9"> 
    <div class="container-productos "> 
     d 
    </div> 
</div> 
<?php include 'footer.php'; ?> 
</body> 
</html> 

をし、これが私のJSです:

function test() 
{ 
var form = document.form_producto_menu; 
alert('hola'); 
form.submit(); 
} 

編集:私は私のJSからのメッセージを取得し、両方のケースで、それが正常に動作しますがときさフォームはループの中にありませんでした。しかし、まだ私のJSのメッセージを受け取りました。 ボタンを押したときメソッドの "GET"の値が空になる

+0

あなたは働いていないものを言っているが、あなたは動作するようになっていますかを告げていません。 –

+1

なぜJavascriptなのですか?ちょうど 'submit'ボタンを使用して、完了しました。 – Andreas

+0

@Andreasまあ、後で病気になってしまったので、この方法でテストしました。 – KhaldunT

答えて

0

インラインclickハンドラの代わりにイベント委譲を使用します。
onclick属性を削除し、代わりに.addEventListener()The principles of unobtrusive JavaScript)で、ul.menu-productoに好適な「グローバル」を提出ハンドラを追加します。

マークアップを削除した例です。
スクリプト部分はul.menu-producto要素がDOMで利用可能で、実行する必要があります。

var wrapper = document.querySelector("ul.menu-producto"); 
 

 
wrapper.addEventListener("submit", function(evt) { 
 
    evt.preventDefault(); // stop submission 
 

 
    var form = evt.target, // event.target === the form the user wanted to submit 
 
     categorie = form.categoria.value; // just an example 
 
    
 
    console.log(categorie); 
 

 
    //form.submit(); 
 
})
<ul class="menu-producto"> 
 
    <li> 
 
    <form action="" method="GET"> 
 
     <input type="submit" value="Submit" /> 
 
     <input type="hidden" name="categoria" value="1"> 
 
    </form> 
 
    </li> 
 
    <li> 
 
    <form action="" method="GET"> 
 
     <input type="submit" value="Submit" /> 
 
     <input type="hidden" name="categoria" value="2"> 
 
    </form> 
 
    </li> 
 
</ul>

+0

ありがとう – KhaldunT

関連する問題