如何在选择器中加载所有选项而不选择
how to load all options in selector without select
当我为新产品添加选项时,必须使用一个选择器来选择我需要的选项。但是所有可用选项都是必需的,并且必须在不使用选择器的情况下可见。如何在不使用选择器的情况下通过option_id添加以形成每个选项?
目录文件
<div class="ms-options">
<p class="error" id="error_options"></p>
<div class="options"></div>
<div>
<select name="options[0]" class="select_option">
<option value="0" disabled="disabled" selected="selected"><?php echo $ms_options_add; ?></option>
<?php foreach($options as $option) { ?>
<option value="<?php echo $option['option_id']?>"><?php echo $option['name']; ?></option>
<?php } ?>
</select>
</div>
</div>
JS.file
// add
$('body').delegate(".select_option", "change", function() {
$(this).children(':selected').attr('disabled', 'disabled');
var option_id = $(this).children(':selected').val();
var select = this;
$.get($('base').attr('href') + 'index.php?route=seller/account-product/jxRenderOptionValues&option_id=' + option_id, function(data) {
var lastRow = $(select).parents('.ms-options').find('.option:last input:last').attr('name');
if (typeof lastRow == "undefined") {
var newRowNum = 1;
} else {
var newRowNum = parseInt(lastRow.match(/[0-9]+/g).shift()) + 1;
}
var data = $(data);
data.find('input,select').attr('name', function(i,name) {
if (name) return name.replace('product_option[0]','product_option[' + newRowNum + ']');
});
$('div.options').append(data);
});
$(this).val(0);
});
请 HLP
我的尝试
html.file
<div class="ms-options">
<p class="error" id="error_options"></p>
<div>
<?php foreach($options as $option) { ?>
<div id="<?php echo $option['option_id']?>"></div>
<?php echo addoption($option['option_id'])?>
<?php } ?>
</div>
</div>
js.file
$(function() {
function addoption(optionid) {
var option_id = optionid;
$.get($('base').attr('href') + 'index.php?route=seller/account-product/jxRenderOptionValues&option_id=' + option_id, function(data) {
$('div'."optionid").append(data);
});
});
});
但我有这个消息
致命错误:在第 9 行的/home/moidomki/public_html/catalog/view/theme/default/template/multiseller/account-product-form-options.tpl 中调用未定义的函数 addoption()
看起来看不到我的功能?
您正在调用delegate
.看到您的第一个参数了吗?这是".select_option"
.您可以在此处指定要在其中定义选项的标签的选择器。从这里开始,您无需再次指定它。在作为参数传递给delegate
的函数中,可以改用$(this)
。如果可能的话,最好在delegate
内部使用$(this)
,因为这样jquery就不必从DOM中搜索它。
请参阅此示例:
$( "table" ).delegate( "td", "click", function() {
$( this ).toggleClass( "chosen" );
});
取自这里。
编辑:
在此,我就尤里·利特维年科(Yurii Litvinenko)的实验做一些说明:
- 让我首先确定,看到人们实际上试图自己学习是一件非常愉快的事情。当然,这个实验是有缺陷的,但不要忘记,学习它的最好方法是实际去做。
- 你所指出的实际问题是你试图使用PHP调用JavaScript函数。重要的是要了解您的php代码称为服务器端或后端,而javascript代码称为客户端或前端。您的 php 在服务器上运行,您的 javascript 在用户的计算机上运行,因此,您不能在服务器端调用客户端函数
- 我在新实验中没有看到您的选择代码
- 如果我没记错的话,您已成功填写服务器上设置的初始选项
如果你打算将选项添加到已经发送到客户端的选择中,那么你需要使用 javascript 来做,就像这样:
function addOption(id, name) { $(".select_option").html(select_option.html() + '<option value="' + id + '">' + name + '</option>'); }
- 使用此选项选择父类内部的类
- 更新:仅根据单选按钮和所选选项选择特定项目
- 使用PHP通过HTML表单选项选择器过滤MYSQL结果
- ng-单击在IE中不起作用的选项选择Angularjs
- 从选项选择中删除值
- On为<选项>选择等效项
- 用户界面先前选择的选项选择更改
- 使用ng重复或ng选项和删除空白选项选择长方体角度
- 在HTML5、CSS、JavaScript中添加选项选择器,类似于移动应用程序中的选项设置
- 输入:选中,选项:选择选择器
- 根据使用angularjs从下拉菜单中选择的选项选择适当的复选框
- 如何根据 html 中的选项/选择重定向用户(单击按钮后)
- 使用ng选项选择中的ng选项进行过滤器下拉列表
- 如何设置选项选择的值
- 如何搜索长下拉选项/选择列表
- jQuery - 根据下拉选项选择列出结果
- 从选项选择单击时打开 2 个 URL
- 在 Angular JS 中为 ng 选项选择默认值
- 下拉选项选择的操作
- 通过单击单选按钮清除所有选项选择条目