2016-10-18 3 views
0

Метода Получить не работает РМКО не reciving никакого значения, когда я нажал на кнопку, которая находится внутри литияФорма внутри литий и внутри петли

<?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 
    } 
} 
?> 

И возникли проблемы с формой, если я ставлю форму вне цикла он работает хорошо, но мне нужно это внутри цикла и внутри тега литий becuase снаружи плохо Recive долго повторять массив, но если он находится внутри плохо получить только кнопку я ударил

Это то, что я хочу, и не работает:

<?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(); 
} 

Edit: В обоих случаях я получаю сообщение от моего JS, она работает нормально, но когда форма находится внутри цикла, не работает, но я все еще получаю сообщение моего JS. Когда я нажимаю кнопку, я получаю пустое значение метода «GET»

+0

Вы говорите, что не работает, но вы не говорит нам, как это должно работать. –

+1

Почему Javascript вообще? Просто используйте кнопку 'submit', и вы закончите ... – Andreas

+0

@ Andreas хорошо, я сделал этот способ, просто чтобы проверить, потому что позже плохо поместил какой-то код внутри него – KhaldunT

ответ

0

Используйте делегацию событий вместо встроенного обработчика click.
Извлеките атрибут onclick и вместо этого добавьте «глобальный» отправитель отправки на ul.menu-producto, предпочтительно .addEventListener() (The principles of unobtrusive JavaScript).

Пример с разделительной версией вашей разметки.
Часть сценария должна быть выполнена после Элемент 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

Смежные вопросы