2011-06-16 97 views
0

當我嵌入或使用PHP循環創建多個div與一些ID。 我希望他們每個人都使用jQuery。說什麼就像簡單的隱藏/顯示界面。jQuery的PHP嵌入DOM元素相同的問題

但是,由於id是相同的,它不會工作。我分配一個變量讓我說$ i到php循環以供唯一性參考。我可以給ID爲DOM元素與像

  <div id="element-<php echo $i ?>">Bla Bla </div> 

腓這裏呼應了完美,但我如何使用jQuery像這樣使用它:

 $("#element"+<?php echo $i ?>).toggle(); 

這裏它不工作。

我該如何正確地做,我哪裏會出錯?

對不起,英語不好。

感謝

+1

<?PHP的echo $ I?> – luca 2011-06-16 07:33:52

+0

你不關閉你的PHP代碼中的JavaScript部分。這是實際的代碼是什麼樣子,或者這只是一個抄寫錯誤? – GordonM 2011-06-16 07:36:57

+0

對不起,我忘了把它們放在這裏。但在實際的代碼中,他們在那裏。對不起:) – kritya 2011-06-16 07:38:28

回答

0

的PHP代碼正確的語法是:

<?php 

//code 

?> 

所以在這裏,你可以清楚地看到什麼是錯誤:

<php echo $i ?> 

它應該是:

<?php echo $i; ?> 

更新回答:

<?php 
for ($k=0;$k<=100;$k++) 
    echo '<div id="element-'.$k.'" onclick="toggleID('.$k.')">Here is the content of div $k</div>'; 
?> 

<script> 
function toggleID(id) 
{ 
    $("#element"+id).toggle(); 
} 
</script> 
+0

對不起,我忘了把它們放在這裏。但在實際的代碼中,他們在那裏。對不起:) – kritya 2011-06-16 07:38:20

+0

然後你一定糾正了代碼。順便說一下,我有你的問題。讓我更新答案。 – 2011-06-16 07:42:10

+0

阿哈哈,我很抱歉。我媽媽在咆哮着我關閉系統,所以我打了個響。順便說一句,非常感謝:) D – kritya 2011-06-16 08:24:04

0

您不包括在jQuery代碼破折號,你也不需要連接字符串:

$("#element-<?php echo $i; ?>").toggle(); 

PHP解釋在服務器上,JavaScript是解釋上客戶端。您不應該考慮在這些環境之間連接字符串,因爲它們是服務於您的應用程序的兩個不同步驟。

+0

對不起,我忘了把它們放在這裏。但在實際的代碼中,他們在那裏。對不起:) – kritya 2011-06-16 07:37:50

0

你的問題是,你沒有」關閉你的PHP語句:

你錯過了「?> 「

試試這個:

;?> 

ATH您的發言結束

編輯:

加你錯過了 」 - 元「 之間的 」「 和」 ID 「:

Ex. element-1 

嘗試包括」減號「:

$( 「#元素 - 」 + ID)

+0

對不起,我忘了把它們放在這裏。但在實際的代碼中,他們在那裏。對不起:) – kritya 2011-06-16 07:38:50

1

你可以試試這個

<script> 
function togl(id) 
{ 
    $("#element"+id).toggle(); 
} 
</script> 

<?php 
for ($i=0;$<10;$i++) 
    echo '<div id="element-'.$i.'" onclick="toggle('.$i.')">Bla Bla </div>'; 
?> 
0

我覺得你的JavaScript代碼應該是這樣的,而不是你貼什麼。

$("#element-"+<?php echo $i ?>).toggle(); 

但是,我不會推薦這種方法,因爲它不是很有效。它會觸發很多jQuery查找。

你最好給所有的問題div一個類,然後使用該類在jQuery中引用它們。

<div class="toggleThis" id="element-<php echo $i ?>">Bla Bla </div> 

$(".toggleThis").toggle(); 
+0

但是,當有人點擊它時,這將切換所有的div。而我只是想讓它只切換相關的div – kritya 2011-06-16 08:20:47

+0

好,那麼在這種情況下ID方法可能是正確的。我寫到你原來的代碼的更正應該工作。但是我不認爲這個字符對於ID是合法的,所以你可能想用_字符替換它 – GordonM 2011-06-16 08:46:21

0

問題是你不能有相同的ID。但是,如果你只是想要簡單的顯示/隱藏功能,你應該添加一個類到你的div而不是一個ID。所以..

class="toggableDiv" 

,然後在jQuery的

$(".toggableDiv").click();