2014-06-16 35 views
0

如何將一個變量傳遞給jQuery與PHP? 我得叫了jQuery從HTML這就是困惑我:得到越來越多的變量從PHP到jquery

的jQuery:

$(document).ready(function() { 
     $('#pre-info').click(function() { 
       $('#hide').slideToggle("fast"); 
     }); 
    }); 

現在我想一個$ I#後前信息和#hide後。

即時調用這樣的jqueryScript:

謝謝。

好,這裏是更多的代碼:

<?php 
    $i =0; 

//Make some querys nd stuff 

foreach ($all as $one) {  

//Here the event 1 is createt but the pre info gets increased with each event listet 
echo "<div class='EVENT'><div id='pre-info$i'>";  


// get som other tables nd stuff 
echo"</div><div id='hide$i' style='display:none;'>"; 

//now this part is hidden until i click on the pre-info 

//hidden Stuff 

$i++; 
} 

?> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.pre-info').click(function() { 
     var hiddenid=$(this).data('hiddenid'); 
     $('#'+hiddenid).slideToggle(); 
    }); 
}); 
</script> 

它仍然無法正常工作,我錯過了什麼? 對我來說,它看起來像在這個JavaScript的pre-info需要一個參考($我)以及? 也許我只是不明白完全地jQuery的..

+0

爲什麼你需要從PHP獲取變量? $ x或$ i的含義是什麼? – amenadiel

+0

原因是:每增加一個div的id(div id ='pre-info $ i'),每當我得到新的內容時創建一個新的id。 所以我要隱藏或顯示定義DIV(顯示更多信息或內容) 我希望能夠通過點擊specificaly擴大或減少股利。 我應該粘貼整個代碼? –

+0

也許多一點的代碼會有所幫助。但是從你說的話來看,你根本不需要php。每次添加新div時,您都可以將變量碰撞。 – amenadiel

回答

1

好了一切,因此,您有幾個隱藏層,併爲每一個你也有一個聽衆切換他們的知名度。原始列表來自php,而後者從查詢中獲取數據。

你可以使用數據屬性前的相關信息鏈接到隱藏要素:

$i =0; 
foreach ($all as $one) {  
    echo "<div class='pre-info' data-hiddenid='hide$i'>click me</div>";  
    echo "<div id='hide$i' style='display:none;'> hidden stuff </div>"; 
    $i++; 
} 

,那麼你只需要在jQuery的一個聽衆

jQuery(document).ready(function() { 
    jQuery('.pre-info').click(function() { 
     var hiddenid=jQuery(this).data('hiddenid'); 
     jQuery('#'+hiddenid).slideToggle(); 
    }); 
}); 

希望它可以幫助(編輯,我包在文檔準備事件中的聽衆)

順便說一句,在我看來,你正在重新發明輪子。您可以使用jQuery UI's accordionsBootstrap collapsibles以及漂亮的交叉瀏覽器轉換。

+0

謝謝,即時通訊很新的jQuery和很難理解它。 但我現在試圖只貼上了jQuery剪斷成 「<腳本類型=‘文本/ JavaScript的’>」,這是在同一文件中。 它什麼都不做。 和即時通訊抱歉,因爲我的問題不夠精確。 我認爲這也是我的問題被降低的原因。我會嘗試使用這段jQuery代碼。感謝 –

+0

在jQuery中,您總是需要將內容包裝到jQuery(document).ready()事件中。看我的編輯。 – amenadiel

+0

謝謝,這似乎工作!保存。 只要我完成了這個項目,你的回答就不能解決我的問題。 –

1

如果JS是在PHP文件,你可以使用:

$(document).ready(function() { 
    $('#pre-info<?php echo $x; ?>').click(function() { 
      $('#hide<?php echo $x; ?>').slideToggle("fast"); 
    }); 
}); 

你的問題沒有包含足夠的信息,讓您更詳細的解答,恐怕。

+0

我在另一個文件中有jQuery。但現在我會嘗試在同一個文件中使用這個小函數。讓我嘗試。 –

0

你可以嵌入你需要進入一個隱藏的HTML屬性或數據屬性

隱藏元素HTML

<input type="hidden" id="someId" name="someName" value="<?php echo $someVariable?>"/> 

JavaScript中的PHP變量

var someVar = $('#someId').val() 

數據HTML

<div id="someId" data-some-var="<?php echo $someVariable?>"></div> 

的Javascript

var someVar = $("#someId").data("some-var") 

需要注意的是,如果你使用的數據必須包含關鍵字「數據」你決定命名屬性

+0

查看您的編輯和評論後,我實際上並不認爲上面的代碼會對您的案例有所幫助,因爲您需要更動態的內容。我建議嘗試使用JavaScript來遞增的,如果那不是工作的樣子到[AJAX](http://api.jquery.com/jquery.ajax) –