0

我有一个很长的选择标签,其中有很多选项,我需要向它们添加 PHP 脚本。我正在尝试制作一个 JQuery 脚本来帮助我为所有选项标签执行此操作,但不知道如何操作。我需要 jQuery 来改变它:

<option value="a">A</option>
<option value="b">B</option>
....
<option value="z">Z</option>

到:

<option value="a" <?= isset($array["a"]) ? "selected" : "" ?>>A</option>
<option value="b" <?= isset($array["b"]) ? "selected" : "" ?>>B</option>
....
<option value="z" <?= isset($array["z"]) ? "selected" : "" ?>>Z</option>

我怎样才能在不付出太多努力的情况下实现这一目标?(该列表实际上长约 200 项)

我能够遍历列表,但我似乎无法添加属性或其他任何东西。

$(document).ready(function() {
    $("#select option").each(function()
    {
        var attr = " <?=  isset($array['."+$(this).attr("value")+"']) ? 'selected' : '' ?>";
        ///how to add this to the tag??
    });
});
4

3 回答 3

1

使用 jQuery 进行更改不会神奇地执行 PHP 标记中的内容。你必须处理这个逻辑服务器端。

我建议编写一个 PHP 脚本,对相关文件进行重复更改.php。要么,要么使用支持正则表达式的编辑器为您完成。

例如,在 Notepad++ 中,您可以(正则表达式)替换所有出现的:

(<option value=")([^"]+)(">.+?</option>)

和:

\1\2<?= isset($array["\2"]) ? "selected" : "" ?>\3
于 2012-11-29T10:50:31.953 回答
0

尽管您应该分离关注点并且不应该将 PHP 与 js 混为一谈,但请保持简短:

$('#select').val('<?php echo $valueYouNeed; ?>');
于 2012-11-29T10:49:46.207 回答
0

因为您只想生成一个 php 文件,所以我建议您在 ide/editor 中使用字符串/正则表达式替换

<option value="a">A</option>

<option value="a" <?= isset($array["a"]) ? "selected" : "" ?>>A</option>

在 vim 中(但其他编辑器也应该支持这一点)你可以这样做

:%s/value=\(".*"\)/value=\1 <?= isset($array[\1]) ? "selected" : "" ?>/g

您搜索的部分在哪里

value=\(".*"\)

这是你更换的部分

value=\1 <?= isset($array[\1]) ? "selected" : "" ?>

使用

\([someregex]\)

您可以“存储”一些变量,并使用 \1 您可以在替换部分 1 中输出它

于 2012-11-29T11:09:03.203 回答