形成里面li和内部循环

时间:2016-10-18 16:52:19

标签: javascript php html forms get

方法获取不工作当我点击里面的按钮时,我没有收到任何值

<?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 
    }
}
?>
我在表单上遇到问题,如果我把表单放在循环外面它工作正常,但我需要它在循环内部和标签里面,因为外面生病重复长重复数组,但如果它在内部生病只需按钮我打了

这就是我想要的而不是工作:

<?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”的空值

1 个答案:

答案 0 :(得分:-1)

使用事件委派而不是内联click处理程序 删除onclick属性,然后添加&#34;全局&#34;在ul.menu-producto上提交处理程序,最好使用.addEventListener()The principles of unobtrusive JavaScript)。

带有标记的剥离版本的示例 在 DOM中ul.menu-producto元素可用后,必须执行脚本部分

&#13;
&#13;
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();
})
&#13;
<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>
&#13;
&#13;
&#13;