使用JQuery将PHP脚本添加到选项标记

时间:2012-11-29 10:37:09

标签: jquery html html-select

我有一个很长的选择标记,其中包含许多选项,我需要将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??
    });
});

3 个答案:

答案 0 :(得分:1)

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

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

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

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

使用:

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

答案 1 :(得分:0)

虽然你应该分开关注点,但你不应该用PHP搞乱PHP,只要保持简短:

$('#select').val('<?php echo $valueYouNeed; ?>');

答案 2 :(得分:0)

因为您只想生成一个php文件,我建议您在ide / editor中使用string / regex替换

开始
<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中输出它