1

各位程序员好。我需要社区帮助:)

我有一个带有三个下拉列表的 php 表单,该表单具有 jquery 函数,可以加载 .txt 文件并构建两个动态下拉列表,用于首选。

第一个用户选择选项(在脚本中硬编码) - 正常下拉。然后脚本控制其他选择。

脚本在这里。我的问题的详细信息如下

<script type="text/javascript">
$(function() {

$("#text-one").change(function() {

$.get("/textdata2/podgrupa/" + $(this).val() + ".txt", function(data) {
  $('#text-two').html('<select onChange="load_subcategory(this.value)" name="podkategorija">'+data+'</select>');
    if($("#text-two select").val()!='base'){
        $.get("/textdata2/podkategorija/" + $("#text-two select").val() + ".txt", function(data) {
          $('#text-three').html('<select name="podgrupa">'+data+'</select>');
        }).fail(function() { 
            alert("Missing file: /textdata2/podkategorija/" + $("#text-two select").val() + ".txt");
            $("#text-three").html('<select name="podgrupa"><option>Odaberite rubriku</option></select>') ;
        });
    }else
        $("#text-three").html('<select name="podgrupa"><option>Odaberite rubriku</option></select>');

});


});
});

function load_subcategory(val){
    $.get("/textdata2/podkategorija/" + val + ".txt", function(data) {
      $('#text-three').html('<select name="podgrupa">'+data+'</select>');
    }).fail(function() { 
            alert("Missing file: /textdata2/podkategorija/" + val + ".txt");
            $("#text-three").html('<select name="podgrupa"><option>Odaberite rubriku</option></select>') 
        });

}
</script>

podgrupa 文件夹中的一个 txt 文件示例

<option value="360">Iznajmljivanje</option>
<option value="361">Unajmljivanje</option>
<option value="456">Cimeri</option>

podkategorija 文件夹中的一个 txt 文件示例(按值与查看 podgrupa 文件夹的下拉列表中的选项相关)

<option value="120">regija 051</option>                    
<option value="121">regija 052</option>                    
<option value="122">ostalo</option> 

当表单发布用户选择的数据时,它会从标签中写入值。有了这些值,jquery 脚本就知道哪个选项连接到其他选项。

例如:如果用户选择:房间(来自第一个硬编码下拉列表 - 选项值中的代码为 155),则脚本会自动加载第二个下拉列表,其中包含来自 txt 文件(podgrupa)的选项,然后用户从这些选项中进行选择(例如 Cimeri - 456 ) 在第二个下拉列表 (podgrupa) 中,脚本从第二个下拉列表中加载与选择相关的第三个下拉值 (podkategorija)。然后用户从第三个下拉列表中选择值(例如 regija 052 - 121)

表单提交后,这些值将由 php 写入:155、456、121。

但是,我需要它为第二(456)和第三(121)选择写不同的值。- 如果用户从示例中选择了这些选项,则第二个需要写入值“3”和第三个值“2”。如您所见,这些不同的值与 txt 文件中的选择位置相同。

可以实现这样的目标吗?也许有额外的ID?或者这些值 (456, 121) 应该是 ID,值应该是 txt 文件中的顺序 (1,2,3...)

希望您了解我想要实现的目标:)

提前感谢您的帮助

4

1 回答 1

0

您可以附加有关每个选项的更多信息,而不仅仅是像 121 或 456 等单个值。您可以将自定义属性附加到每个选项标记,甚至可以使用 jQuery 的数据方法将任意数据存储到您认为有用的每个选项。这是我正在谈论的使用数据方法的工作示例:http: //jsfiddle.net/qC6HK/

var dynamicDropdown = $('<select id="dropdown">');
var option1 = $('<option value="123">Option 1 Text</option');
dynamicDropdown.append(option1);
option1.data('coolData', 'the value of coolData');

希望有帮助。

安迪

于 2013-09-04T18:19:20.987 回答