2012-11-29 53 views
0

我有一个很长的选择标记,其中有很多选项,我需要向他们添加PHP脚本。 我想做一个JQuery脚本,将帮助我为所有的选项标签,但不知道如何。 我需要jQuery来更改此:使用JQuery将PHP脚本添加到选项标记

<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?? 
    }); 
}); 

回答

1

制作与jQuery这种变化在PHP标签不会神奇执行的东西。你必须处理这个逻辑服务器端。

我建议编写一个PHP脚本,对所涉及的.php文件进行重复更改。要么,要么使用带有正则表达式支持的编辑器来为你做。

例如,在记事本+ +,你可以(正则表达式)替换所有出现:

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

有:

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

是输出,但将此代码添加到200+行手动相当痛苦的,所以我需要一个“工具”来帮助我。 – Ilan

+0

使用jquery进行更改后,我会将新选项标记复制到服务器将处理其他所有内容的php页面 – Ilan

+0

@Ilan是的,这些工具称为文本编辑器。他们与IDE捆绑或独立。你觉得多么懒,决不应该是决定软件逻辑的一个因素。 –

0

虽然你应该分开的关切和你不应该用JS搞乱PHP,只是不停地短:

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

因为你只是想生成一个PHP文件,我会建议使用字符串/正则表达式替换您的ide /编辑器

<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

+0

啊阿萨德打我:) – Xeli

相关问题