2012-11-29 82 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

相關問題