刷新表单而不进行表单验证


refresh the form without running through form validation

我正在设置一个购物车,用户可以在其中更新数量。因为我不知道aJAX能立即做到这一点,所以我希望用一个刷新车在全php中完成它。(你仍然可以看到我的帖子,我试图用AJAX设置它)

问题是,购物车下面有一个表格,当用户更改数量(输入)时,他必须单击"刷新"或"重新计算",不管怎样。

所以我的问题是,我让验证过程运行,因为重新计算就像一个提交按钮(价格是在表单方法开始时计算的),因为用户修改了一个输入,对于所有尚未填写的字段,我都得到了一个错误。

我怎么能说"如果用户点击刷新,不要将表单提交到验证过程,只考虑输入"?我不知道是否可以在同一页上有两个分开的表格?(它们在彼此内部)

顺便说一下,我正在使用codeIgniter。

我给出了我表格的一部分,我需要听

form_dropdown('quantity'.$product['title'],$options,$value[$product['title']],$data0);

当我想更新数量时,只更新这一个。

<ul class="form">
    <li>
        <h2>Your Information</h2>
    </li>
    <li>
        <ul class="form" id="threeColumns">
            <li>
                <?php
                echo form_open('main/Form');
                echo form_label('First Name', 'firstname');
                echo ' :</br>';
                if (set_value('firstname')) {
                    $valuefirstname = set_value('firstname');
                } else {
                    $valuefirstname = $this->session->userdata('firstname');
                }
                echo form_input('firstname', $valuefirstname);
                echo form_error('firstname');
                echo '</li><li>';
                echo form_label('Last Name', 'lastname');
                echo ' :</br>';
                if (set_value('firstname')) {
                    $valuelastname = set_value('lastname');
                } else {
                    $valuelastname = $this->session->userdata('lastname');
                }
                echo form_input('lastname', $valuelastname);
                echo form_error('lastname');
                echo '</li><li>';
                echo form_label('Email', 'email');
                echo ' :</br>';
                if (set_value('firstname')) {
                    $valueemail = set_value('email');
                } else {
                    $valueemail = $this->session->userdata('email');
                }
                echo form_input('email', $valueemail);
                echo form_error('email');
                ?>
                <div class="fError Right">
                    <?php
                    if (ISSET($error) AND $error != NULL)
                        echo $error;
                    ?>
                </div>
            </li>
        </ul>
    </li>
    <div class="break">
    </div>
    <li id="Payment">
        <div id='Table'>
            <table>
                <tr>
                    <th id="top-left">
                        Product
                    </th>
                    <th>
                        Color
                    </th>
                    <th>
                        Quantity
                    </th>
                    <th>
                        Price Per Product
                    </th>
                    <th id= "top-right">
                        Total
                    </th>
                </tr>
                <?php foreach ($products as $product) { ?>
                    <tr class="line">
                        <td>
                            <img id="tableImage" src="<?php echo base_url($product['image_url']) ?>" alt="product" width="121"  />
                        </td>
                        <td>
                            <?php echo $product['title'] ?>
                        </td>
                        <td>
                            <?php
                            $options = array(
                                '0' => '0',
                                '1' => '1',
                                '2' => '2',
                                '3' => '3',
                                '4' => '4',
                                '5' => '5',
                                '6' => '6',
                                '7' => '7',
                            );
                            if ($product['quantity'] == 0) {
                                $value[$product['title']] = set_value('quantity' . $product['title']);
                            } else {
                                $value[$product['title']] = $product['quantity'];
                            }
                            $data0 = 'class="quantSelect" value="' . $value[$product['title']] . '" id="quant' . $product['title'] . '"';
                            echo form_dropdown('quantity' . $product['title'], $options, $value[$product['title']], $data0);
                            ?>
                        </td>
                        <td>
                            <?php echo $product['price'] ?>
                        </td>
                        <td id="<?php echo 'price' . $product['title'] ?>">
                            $<?php echo $total[$product['title']] ?>
                        </td>
                    </tr>
                    <?php } ?>

感谢

一个简单的方法是为表单设置两个规则集。一个是包含所有字段和"required"。另一个是相同的规则,但没有"必需的"

然后,如果刷新,则在没有"必需"的情况下运行表单验证

如果提交,请使用所需的规则集运行表单验证。