【问题标题】:submit a form according to the selected item根据所选项目提交表单
【发布时间】:2014-12-17 20:42:54
【问题描述】:

我有一个问题,我有一个从数据库中检索到的菜单 我想根据所选项目通过邮寄方式将表单提交到php页面 每次我单击 a href 链接“添加”时,帖子的值是菜单中唯一的第一项

while($MenuItem=mysql_fetch_array($rc))
                                {   

                                ?>

    <!--To send item info to single-product page -->                        
    <div class="col-md-4">
        <div class="products">
                <!-- <a href="single-product.php" > -->
                <a href="single-product.php?id=<?php echo $MenuItem['Item_ID']?>">
                    <img src="images/<?php echo $MenuItem['Item_Image']; ?>"  alt="" />
                </a>                            
                <a href="single-product.php?id=<?php echo $MenuItem['Item_ID']?>">
                    <h4> <?php echo $MenuItem['Item_Name']?> </h4>
                </a>
                <p class="price"> <?php echo $MenuItem['Item_Price']?></p>
                <div class="row lead">
                    <center><div id="stars" class="starrr"></div></center>
                </div>
                <form method="post" action="AddtoCart.php" id="productFrom">
                <input type = "hidden" value="<?php echo $MenuItem['Item_ID']?>" name="CC" />   
                </form>
                <a class="view-link shutter" href="javascript: submitForm();" name="Add">
                    <i class="fa fa-plus-circle"></i>Add To Cart</a>                            
        </div>  <!-- End of /.products -->
   </div> <!-- End Of /.Col-md-4 -->            

【问题讨论】:

  • 你的submitForm()函数在哪里?
  • 您的表单上有一个操作属性,为什么您的表单中没有一个提交输入?
  • 我冒昧地说你的form 有一个硬编码的id 属性,这对你所有的表单都是一样的。您的submitForm 函数可能正在使用getElementById,它只会找到第一个,然后提交。您需要为每个表单引入一些独特性。

标签: javascript php jquery html post


【解决方案1】:

您正在重复许多项目并写出元素。其中一个元素是表单:

<form method="post" action="AddtoCart.php" id="productForm">
    <input type = "hidden" value="<?php echo $MenuItem['Item_ID']?>" name="CC" />
</form>

但是它有一个硬编码的id 属性-productForm。这意味着您页面中的每个表单都具有相同的 ID,这是无效的 - ID 是唯一的。 submitForm 函数通过 ID 获取表单,因此总是会找到具有该 ID 的第一个并提交,因此您的问题。

为了解决这个问题,每个表单都需要有一个唯一的 ID:

<form method="post" action="AddtoCart.php" id="productForm<?php echo $MenuItem['Item_ID']?>">
    <input type = "hidden" value="<?php echo $MenuItem['Item_ID']?>" name="CC" />
</form>

这需要传递到您的submitForm 函数中:

<a class="view-link shutter" href="javascript: submitForm('<?php echo $MenuItem['Item_ID']?>');" name="Add">

然后可以调整以使用它:

function submitForm(formID) {
    $('#productForm' + formID).submit();
}

【讨论】:

  • 这是假设$MenuItem['Item_ID'] 是数字。如果它可能包含'" 等,则需要使用循环计数器来识别每个表单。
  • 是的,它的数字,我按照上面做了,但现在表单无法提交
  • @cat23 一定是找不到要提交的表单。您能否检查 php 脚本的输出以确保实际写出的表单具有唯一 ID?
猜你喜欢
  • 2017-12-01
  • 2020-04-10
  • 2011-12-31
  • 1970-01-01
  • 2019-08-25
  • 2012-02-11
  • 1970-01-01
  • 2023-04-02
相关资源
最近更新 更多