2016-10-31 84 views
-2

我有一個onclick函數循環在PHP中。 當我點擊特定的onclick函數時,我想顯示特定的DIV。

這些是我的代碼。

這是PHP代碼

for($i = 1; $i < 10; $i++) 
{ 
    echo '<a href onclick="get_number($i)">Get Number</a>'; 
    echo '<div class="ans_option_box" style="display:none">show this div</div>'; 
    echo '<br>'; 
} 

這是jQuery代碼

<script> 
function get_number(id) 
{ 
    $(this).find('.ans_option_box').show(); 
} 
</script> 

我真正想要的,當我點擊5日的onclick價值。 DIV應該顯示在第5個值以下。 在此先感謝!

+0

你需要雙引號'「'周圍的PHP字符串插值'$ i'。 – 4castle

+0

使用'button'元素,而不是'了',或嘗試在腳本來控制點擊事件,以防止默認情況下,因爲當你點擊'a'時,頁面將被重新加載,你將看不到任何div。 – nanocv

+0

嗨, PHP代碼不是問題。我的問題是jquery one。 那不是真的PHP代碼我是我真的很想,當我點擊第5個onclick值時,DIV應該出現在第5個值之下 –

回答

0

您要顯示的div不是<a>標記的孩子,因此find()將不起作用。你將不得不改變你的html或使用不同的jQuery函數。

而且您需要將echo '<a href onclick="get_number($i)">Get Number</a>';更改爲echo '<a href onclick="get_number(' . $i . ')">Get Number</a>';才能真正擁有php輸出的數字。

+0

嗨,PHP代碼不是問題。我的問題是jQuery之一。這不是我正在使用的PHP代碼。我已經把這只是爲了得到一個想法。我真的很想,當我點擊第五個onclick值。 DIV應該出現在第5個值之下 –

0

這裏你有它的工作。您必須更改PHP代碼才能正確顯示$i

另外,我改變了jQuery選擇器以id搜索項目,因爲它更容易,更高效。

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>Page</title> 
    </head> 
    <body> 

    <?php 
    for ($i = 1; $i < 10; $i++) { 
     echo '<button onclick="get_number(' . $i . ')">Get Number</button>'; 
     echo '<div id="' . $i . '" class="ans_option_box" style="display:none">show this div</div>'; 
     echo '<br>'; 
    } 
    ?> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    <script> 
     function get_number(id) 
     { 
     $("#"+id).show(); 
     } 
    </script> 
    </body> 
</html>