我正在设置一个用户可以更新数量的购物车。因为我不知道aJAX会立即执行它,所以我希望在完整的PHP中使用刷新购物车。 (you can still se my post where I try to set it up with AJAX)
问题是购物车下面有一个表格,当用户更改数量(进入输入)时,他必须点击“刷新”或“重新计算”,无论如何。
所以我的问题是我得到验证过程正在运行,因为重新计算就像一个提交按钮(价格在表单方法的开头计算),因为用户修改了输入,并且对于所有具有的字段尚未填补,我收到了错误。
如何说“如果用户点击刷新,请不要将表单提交给验证过程,只考虑该输入”?我不知道是否可以在同一页面上有2个单独的表格? (他们在彼此里面)
顺便说一下,我正在使用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 } ?>
由于
答案 0 :(得分:0)
一种简单的方法是为表单设置两个规则集。一个是所有领域和'必需'。另一个是相同的规则,但没有“必需”
然后,如果刷新,运行表单验证没有'required'
如果提交,请使用所需的规则集运行表单验证。