如何解决如何在选择选项上使用Javascript进行验证
我发现了一个问题。我想使用Javascript来调用验证。如果我的情况是,如果客户要购买L号,而在另一产品中购买另一种尺寸,则系统可以验证并显示消息“您不能购买其他尺寸,请使用相同的尺寸进行更改”
这是视图:
<tr>
<?php echo form_open('controller/buyprod','class="form"');?>
<td>
<select name="product_stock_area" id="product_stock_area" class="form-control" onchange="pros_stok()" style="width:95%">
<option value="0">Select Size:</option>
<option value="S">S</option>
<option value="M">M</option>
<option value="L">L</option>
</select>
</td>
<td style="width: 15%">
<select name="items" id="items" class="form-control" style="width:95%">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
<td style="width: 20%">
<button type="submit" class="btn btn-primary" id="buying">Add to cart</button>
<?php echo form_close();
?>
</td>
<td style="width: 35%;padding-left: 5px;">
<span class="message-form message-validate">You can't buy to different size,please change with the same size.</span>
</td>
</tr>
这是Javascript [UPDATE 1] :
<script type="text/javascript">
$(document).ready(function() {
$('.form').submit(function() {
var nama = $('#product_stock_area').val().length;
var areaprod = "<?php $this->session->userdata('product_stock_area'); ?>";
var namas = document.getElementById("product_stock_area").value;
var validateprod = "<?php $this->cart->total_items(); ?>";
if(validateprod > 1){
if (areaprod != namas) {
$(".message-validate").css('display','block');
return false;
}
console.log(nama)
}
});
});
</script>
为什么我使用userdata(session)
是因为当第一笔订单的客户的商品尺寸为L。而会话保存的商品尺寸为L时,当客户购买另一个产品userdata
时,其商品尺寸必须与新产品相同。 >
但是由于我的代码出现此JavaScript错误,span
消息未显示。
[UPDATE 1]
目前,验证可以显示一条消息,但是当我将其更改为所有大小时,它仍然可以验证。因此,我无法将产品添加到购物车中。
所以我添加了var validateprod ="<?php $this->cart->total_items ();?>";
因此,如果新客户第一次购买产品,则无法进行验证,如果是第二次购买,则进行验证。但是当我尝试时,验证不再发生。
请帮帮我:(
解决方法
如果您将javascript代码粘贴到与表单相同的模板中,则可以像这样将php会话或变量粘贴到js:
const phpSession = JSON.parse('<?php echo json_encode($_SESSION) ?>');
但是为了安全起见,最好使用自己的数组或变量:
const mySettings = JSON.parse('<?php echo json_encode(['name' => 'Alex','age' => '18']) ?>');
const myString = '<?php echo $any_string ?>';
const myIntOrBool = parseInt(<?php echo $any_int_or_bool ?>);
然后使用:
console.log(mySettings.name);
console.log(myString);
,
我认为只有一个问题。即
var areaprod = "<?php $this->session->userdata('product_stock_area'); ?>";
您还没有echo
PHP session
集合。 echo
所有PHP session
收藏。
var areaprod = "<?php echo $this->session->userdata('product_stock_area'); ?>";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。