我有以下情况 -
用户点击图片以搜索特定品牌的车辆。然后,该图像的值必须进入隐藏框,我将发布返回到另一个表单的值。我似乎无法获得返回的值......
我的代码......
<form action="searchbrand.php" method="POST" name="frmbrand">
<!--First row of logos...-->
<table class="whitelogo">
<tr>
<td align="center">
<p style="height:5px"></p>
<input type="image" name="brand" id="brand" value="Alfa Romeo" src="images/carlogos/alfa.jpg" height="55px" width="55px" title="View our Alfa Romeo Selection" alt="Alfa Romeo" onClick="javascript:document.submitForm.submit();" />
</td>
<td align="center">
<p style="height:5px"></p>
<input type="image" name="brand" id="brand" value="Aston Martin" src="images/carlogos/aston.jpg" height="55px" width="55px" title="View our Aston Martin Selection" alt="Aston Martin" onClick="javascript:document.submitForm.submit();" />
</td>
<td align="center">
<p style="height:5px"></p>
<input type="image" name="brand" id="brand" value="Audi" src="images/carlogos/audi.gif" height="55px" width="55px" title="View our Audi Selection" alt="Audi" onClick="javascript:document.submitForm.submit();" />
</td>
<td align="center">
<p style="height:5px"></p>
<input type="image" name="brand" id="brand" value="Bentley" src="images/carlogos/bentley.jpg" height="55px" width="55px" title="View our Bentley Selection" alt="Bentley" onClick="javascript:document.submitForm.submit();" />
</td>
<td align="center">
<p style="height:5px"></p>
<input type="image" name="brand" id="brand" value="BMW" src="images/carlogos/bmw.gif" height="55px" width="55px" title="View our BMW Selection" alt="BMW" onClick="javascript:document.submitForm.submit();" />
</td>
<td align="center">
<p style="height:5px"></p>
<input type="image" name="brand" id="brand" value="Cadillac" src="images/carlogos/cadillac.jpg" height="55px" width="55px" title="View our Cadillac Selection" alt="Cadillac" onClick="javascript:document.submitForm.submit();" />
</td>
</tr>
</table>
正如您将在此处注意到的那样,我将图像命名为ALL'brand',每个图像都有单独的值。
<input type="hidden" name="hidbrand" value="<?=$_POST['brand'];?>"/>
</form>
我正试图从用户点击的图片中捕捉这里的值...
在我的searchbrand.php页面中,它将根据返回的值执行操作,以下内容......
<?php
include 'init.php';
$vehicle_brand = $_POST['hidbrand'];
echo $vehicle_brand, '</br>';
?>
没有返回任何内容,没有错误,没有价值,像我一样空白:) 任何人都知道我要去哪里干什么?
答案 0 :(得分:6)
从hidbrand中移除<?=$_POST['brand']?>
并用以下内容替换所有图像输入类型中的onClick:
javascript:document.forms['frmbrand'].hidbrand.value = this.value;
这将使用用户点击的图像的值填充隐藏元素,然后自动提交表单。
您目前在onClick中使用的当前javascript(提交表单)没有实际意义,因为图片输入类型在点击时会自动提交表单。
答案 1 :(得分:3)
请为图片提供不同的ID。在一个页面中,表单元素的名称可以相同。但是每个表单元素的id应该是唯一的。 如果为多于1个元素指定相同名称,则它将返回数组作为post值。 您可以使用类似
的jquery来获取值 $('input[name="brand"]').onclick(function(){alert($(this).attr('alt'));}
这将提醒用户点击的图像的alt属性。
只需使用var_dump()查看$ _POST中的内容:
var_dump($_POST);
当您使用input type="image">
这将返回类似
的数组 array
'brand_x' => string '0' (length=1)
'brand_y' => string '0' (length=1)
“
这样您就可以使用$_POST[brand_x]
获取第二个表单上的值
答案 2 :(得分:1)
单击图像输入时,它会提交表单,因此可能在设置hidinput值之前提交。
看看$ _POST - IIRC中包含的内容,您将获得与图像上单击的x和y位置相对应的值。您可以使用它来判断单击了哪个图像,而无需执行任何Javascript操作。
答案 3 :(得分:1)
当我理解正确时,这应该是一个例子:
<!doctype html>
<html><head></head>
<body>
<form action="searchbrand.php" method="POST"
name="frmbrand" onsubmit="return false;">
<input type="image" name="brand" id="brand" value="Alfa Romeo"
src="images/carlogos/alfa.jpg" height="55px" width="55px"
title="View our Alfa Romeo Selection" alt="Alfa Romeo"
onClick="document.submitForm.hidbrand.value=this.value; document.submitForm.submit();" />
</form>
<form action="http://www.stackoverflow.com/" method="POST" name="submitForm">
<input type="text" name="hidbrand" value="" />
</form>
</body>
</html>
首先取消包含图片的表单上的提交:
... onsubmit="return false;" ...
然后在提交之前将值复制到 submitForm 中的隐藏字段(在我的示例中,我没有隐藏 hidbrand 字段以进行调试):
... onClick="document.submitForm.hidbrand.value=this.value; document.submitForm.submit();" ...
第一个表格实际上不一定是表格,因为它不应该提交。您可以使用 onclick 处理程序使用普通图像。