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