2014-07-07 46 views
0

我試圖製作一個新聞網站(更新現有的網站,確實基於CMSMS,它有很多自動生成的代碼,似乎會導致各種各樣的問題。)無論如何,我更新一個模板,在那裏,而不是去一個新的網站,發佈簡歷的文章,我希望簡歷能夠通過單擊「閱讀更多」按鈕來隱藏div中的簡歷文本。我知道如何製作切換按鈕等等,問題是在同一頁面需要幾個簡歷,需要自動在模板中設置的唯一ID。這個想法,我不得不與生成它們:作爲HTML元素的PHP變量元素ID

<?php $firstId = uniqid(); $secondId = uniqId(); ?> 

然後,我會打電話給他們,像這樣:

<div id="<?php echo $firstId; ?>" class=""> perhaps <span>here </span> or whatevs.</div> 

然後東西第二證件相似。這樣做的想法是,我可以通過簡單地瞄準$ firstId fx來從JS瞄準這些Div。

但是,如果我右擊並檢查與螢火蟲的元素,我只是得到

id="<?php echo $firstId; ?>" 

代替:

id="someUniqueId" 

所以,問題是我如何得到它實際上解析代碼,以便我可以通過ID調用元素?例如將其可見性設置爲隱藏。

+0

你保存你的頁面.PHP? –

回答

0

我最終使用了一個逐個遍歷每個元素的for循環,通過它們的css類來定位它們,在這種情況下它們只是空的。

因爲我有權控制每頁顯示多少個對象,以及完整的文章和摘要的模板,我可以使用簡單的數字以確保每次都是唯一的。

腳本只是通過頁面給出包含我要定位的元素的div中的所有按鈕,值爲0-9。 然後它給包含完整的物品的當前按鈕的ID + 40導致它們從40-49

去的ID的div,然後將摘要從20-29

然後去的代碼的其餘部分只是標記特定的元素,最初使用按鈕ID,然後減去/添加兩個不同變量的值,以獲得文章ID和摘要ID,然後我從那裏工作。即使它有點簡單,它也可以很好地工作。

的靈感來自於你的答案Fleshgrinder來了,謝謝:)

0

無法確定問題解決方案的位置,因爲它是自定義軟件。但問題本身很容易識別,PHP不會被解析和執行。這就是爲什麼你在HTML輸出中看到PHP打開和關閉標記的原因。

如果你問我,使用uniqid()似乎是一個壞主意,因爲你無法直接在你的JavaScript中定位任何這些元素。此外,該功能的開銷是完全沒有必要的。

只需使用計數器計算您用任意數字初始化的元素,然後將其與輸出的每個元素一起增加。

+0

看到我自己的答案,從你最後的陳述中獲得靈感。 – user3801839

0

請嘗試考慮這一點。

ob_start(); 
include_once "your_html_with_php_code_file"; 
$output = ob_get_contents(); 
ob_end_clean(); 

$輸出將是你需要的東西。