2016-04-12 10 views
0

私の関数は、サブフォーラム名を要求するmysqliクエリから$ dataを持つテーブルを生成します。テキストはvaribaleフォーラムが設定されているかどうかをチェックイムをクリックすると設定した場合、私はdiv要素を非表示にするonclickイベントでPHPコードを実行

function forum_links($data){ 
//print_r($data); 
echo "<div id = 'sub_forums'> 
     <table>"; 
foreach($data as $name){ 
echo " 
     <tr> 
      <td id='sub_forum_image'> 
      <img src='images/favicon_text.ico' alt='MWGA'> 
      </td> 
      <td id='sub_forum_td'> 
      <a href='forum?forum={$name[0]}'>{$name[0]}</a> 
      </td> 
     </tr>"; 
} 
echo "</table></div>"; 
} 

「sub_forums」

<?php 
    if (isset($_GET['forum'])) { 
    echo "is set"; 
    ?> <script>sub_forum_hide();</script> <?php 
    } 
?> 

私は

Uncaught TypeError: Cannot read property 'style' of null.

を得ているエラー

これは私の文書のシーケンシングと関係があると思います。なぜなら、他の部分に全く同じhide style.display = "none"を使用しているからです。

function sub_forum_hide(){ 
    document.getElementById("sub_forum").style.display = "none"; 
} 

私は、ドキュメントの一番下にsub_forum_hide()を移動しようとしましたが、同じエラーが表示されます。ちょうど参照のために私がテキストをクリックするとエコーは機能します。

+5

を使用する必要があります私はあなたの一番上のスニペットでは、あなたが 'sub_forums'(複数)にIDを設定しているし、後でしようとしていることに気づいていますID「sub_forum」(単数)を使用してそれを非表示にします。 – claywhipkey

+1

[IDはユニークでなければならない](http://stackoverflow.com/questions/5611963/can-multiple-different-html-elements-have-the-same-id-if-theyre-different-eleme)これらの要素と対話しようとすると[JavaScript](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)とCSSで問題が発生します。 –

+0

さらに、(タイトルに基づいて)JavaScriptでPHPコードを実行する唯一の方法は、AJAXを使用することです。 –

答えて

1

あなたのコードの見た目から.. IDが "sub_forum"の要素はありませんが、これはnullです。代わりにID = "sub_forums"のdivがあります。実際にはあなたの関数は

です。

おそらくあなたのタイプミスです。

次回はエラーを理解しておいてください...多くのトラブルやデバッグに役立ちます。

+0

これは何か簡単なことが分かっていた:)ありがとう!これを1時間以上見つめている –

+0

@CarlWirkusを助けてうれしい...答えとしてマークするのを忘れないでください:) – AceKYD

0

sub_forumをsub_forumに変更します。

function forum_links($data){ 
//print_r($data); 
echo "<div id = 'sub_forum'> 
     <table>"; 
foreach($data as $name){ 
echo " 
     <tr> 
      <td id='sub_forum_image'> 
      <img src='images/favicon_text.ico' alt='MWGA'> 
      </td> 
      <td id='sub_forum_td'> 
      <a href='forum?forum={$name[0]}'>{$name[0]}</a> 
      </td> 
     </tr>"; 
} 
echo "</table></div>"; 
} 
1

あなたのタイトルが実際にあなたの問題と一致していないように見えます。

実際に説明した問題を解決するには、他の人が指摘しているように、divのIDを修正する必要があります。

あなたがJavaScriptからいくつかのPHPを実行したい場合は、あなたがアヤックス

関連する問題