方法获取不工作当我点击里面的按钮时,我没有收到任何值
<?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”的空值
答案 0 :(得分:-1)
使用事件委派而不是内联click
处理程序
删除onclick
属性,然后添加&#34;全局&#34;在ul.menu-producto
上提交处理程序,最好使用.addEventListener()
(The principles of unobtrusive JavaScript)。
带有标记的剥离版本的示例
在 DOM中ul.menu-producto
元素可用后,必须执行脚本部分。
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;