在php中将图像值发送到第二种形式

时间:2012-11-07 15:11:02

标签: php

我有以下情况 -

用户点击图片以搜索特定品牌的车辆。然后,该图像的值必须进入隐藏框,我将发布返回到另一个表单的值。我似乎无法获得返回的值......

我的代码......

<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>';
 ?>

没有返回任何内容,没有错误,没有价值,像我一样空白:) 任何人都知道我要去哪里干什么?

4 个答案:

答案 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 处理程序使用普通图像。