如何使用多个“提交”按钮提交表单? (菜单前端)

时间:2018-08-17 21:30:35

标签: php jquery post submit

我不确定标题的措辞如何。如果有人有改进建议,请告诉我。

通常,当您创建HTML,CSS和PHP表单时..有一个指定的“提交”按钮(或者甚至是2个)....

我在这里构建的更多是一个“菜单”前端。所有显示的选项都有其自己的“顺序”按钮。

一旦单击“订单”按钮...表单应提交给自己..并且PHP解析会执行“事情” ...

我不清楚执行此操作的正确方法吗?

我是否仅使用一些jQuery向每个“订单”按钮添加一些代码以提交页面?

菜单中的每个“项目”都应具有与之关联的唯一值。 但是由于它不是带有输入字段或复选框/单选按钮的真实表单,所以我也不清楚如何最好地“捕获”此数据?

总结:

1。)当没有“单/指定”提交按钮时,如何最好地向自己提交表单/页面,并且显示的每个项目都可以自己“提交”? (要在每个“订单”按钮中添加事件的jQuery吗?)

2。)由于从技术上讲,我目前不发布任何数据(如何),如何最好地在提交页面/表单时添加和保留此唯一数据(即:$ _POST []吗?) (将此唯一数据添加到将用于提交的“订单”按钮中吗?

更新: 我猜想是因为请求了“代码” ..(而且我知道问题应该是这种方式或那种方式的答案)..但是它是“有效的”(但这不是问题所在。最佳做法)。

这是我要输出查询返回的所有可用饮料的方法:(基本上每个按钮ID是在提交表单之前设置为隐藏字段的唯一饮料“配方”)

<form id="drinkForm" name="drinkForm" method="post" action="<?=$redirectUrl?>?mode=submit">

    <!-- hidden field to hold recipe chosen -->
    <input type="hidden" name="selectedDrink" id="selectedDrink" value="" />

    <?
    for($i=0; $i<count($drinkList); $i++){
        //drink image
        $ingredientList = '';
        $drinkImage = 'images' . $drinkList[$i]['drink_image'];                                                    
        if(!file_exists($drinkImage)){                                                     
            $drinkImage = 'images/no_image.jpg'; 
        }
        ?>                                                           
        <div class="drinkListing">
            <div class="imageContainer"><img src="<?=$drinkImage?>"></div>

            <div class="drinkDetails"> 
                <!-- drink title -->
                <div class="drinkTitle"><?=$drinkList[$i]['drink_name'] . '('. $drinkList[$i]['drink_id'] .')'?></div>              
                <!-- generate drink recipe to be sent on $_POST[''] -->
                <?
                for($x=1; $x<=15; $x++){
                    //check for empty ingredient (end of recipe)
                    if($drinkList[$i]['ingredient_'.$x.'_dispenser'] != ''){
                        //dispenser type
                        if($drinkList[$i]['ingredient_'.$x.'_dispenser'] == 'bottle'){
                            $ingredientList .= 'b=';
                        }else{
                            $ingredientList .= 'v=';
                        }
                        //dispenser
                        $ingredientList .= $drinkList[$i]['ingredient_'.$x.'_dispenser_order'] . ':';
                        //dosage
                        $ingredientList .= $drinkList[$i]['ingredient_'.$x.'_dosage'] . ',';

                    }else{
                        //remove trailing comma in ingredient list
                        //$ingredientList = rtrim($ingredientList, ','); //removes all commas
                        $ingredientList = trim($ingredientList,",");
                        break;
                    }
                }
                ?> 
                <!-- submit buttons -->
                <div class="buttonContainer">
                    <button class="orderButton" id="<?=$ingredientList?>" type="button">Order</button>                                      
                </div>              
                <!-- drink description -->
                <div class="drinkDesc"><?=$drinkList[$i]['drink_desc']?></div>

                <p><?=$ingredientList?></p>
            </div>                                                                   
        </div>                                                                   
    <?
    }
    ?>
</form> 

和jQuery

$('.orderButton').click(function() {        
        console.log("button clicked");
        var targetRecipe = $(this).attr('id'); //(this.id) or alert($(this).attr('id'));
        $('#selectedDrink').val(targetRecipe);
        $('#drinkForm').submit();
    });

我的问题是..这是最佳做法吗?还是我想更多呢..这是一种“不好的”(未批准)方法吗?

0 个答案:

没有答案