【问题标题】:integrating ajax for option check in product.tpl Open Cart集成 ajax 以在 product.tpl 打开购物车中进行选项检查
【发布时间】:2013-08-14 05:37:30
【问题描述】:

我想将 ajax 检查脚本放在 product.tpl(catalog) 中,它应该采用输入的文本框值并应该检查数据库,如果不存在立即应该在那里给出错误消息。我有 ajax 脚本,但无法集成,因为我无法获取从后端生成的文本框名称。

这是我的 product.tpl 文本框,

<?php if ($option['type'] == 'text') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" />
        </div>
        <br />
        <?php } ?>

这是我的 ajax,

<script type="text/javascript">
$(document).ready(function()//When the dom is ready 
{
$("#textboxname").change(function() 
{ 

var name = $("#textboxname").val();
if(textboxname.length > 3)
{
$("#availability_status").html('<img src="loader.gif" align="absmiddle">&nbsp;Checking availability...');


$.ajax({  //Make the Ajax Request
    type: "POST",  
    url: "ajax_check.php",  //file name
    data: "name="+ name,  //data
    success: function(server_response){  

   $("#availability_status").ajaxComplete(function(event, request){ 

   if(server_response == '0')//if ajax_check.php return value "0"
   { 
   $("#availability_status").html('<img src="available.png" align="absmiddle"> <font color="Green"> Available </font>  ');
   //add this image to the span with id "availability_status"
   }  
   else  if(server_response == '1')//if it returns "1"
   {  
    $("#availability_status").html('<img src="not_available.png" align="absmiddle"> <font color="red">Not Available </font>');
   }  

   });
   } 

  }); 

}

return false;
});

});
</script>

在 textboxname 中,我应该输入的内容我没有得到。 请有人建议我

【问题讨论】:

    标签: php jquery templates opencart


    【解决方案1】:

    这必须是硬编码的 - 选项文本字段没有类或 id 属性。打开具有此文本字段选项的产品详细信息,打开 FireBug 并检查该文本字段输入。找到它的name 属性值。它可能看起来像这样:

    <input type="text" value="test" name="option[208]">
    

    现在在你的 jQuery 中使用这个作为选择器:

    $('div.options input[name="option[208]"]').change(function() { ... }
    

    这应该可行。

    还有一个建议:您应该在 /catalog/controller/product/product.php 类中实现自己的操作(方法),而不是使用一些自定义的 ajax_check.php 文件,并像 index.php?route=catalog/product/ajax_check 那样对 URL 进行 POST(假设将调用新方法/操作ajax_check)...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      相关资源
      最近更新 更多