2016-05-10 7 views
1

ここに私のPHP/javascriptコードです。ループ内にスクリプトを書き込もうとしましたが、動作しません。これはローカルチームを処理している間にローカルチームに1つ、ロードチームを処理している間に2つのボタンを生成します。これらのボタンは、別のクラスのdivに含まれる情報を表示します。何らかの理由で、それはループの最初の反復であるローカルチームに対してのみ機能します。ループ内のトグルスクリプトは、最初の繰り返しでのみ機能します

私はクラスの代わりにIDを使っている人についてたくさん読んでいますが、これは私のケースではありません。私はかなり失われています。

ありがとうございました。含まれるPHPコードの後に​​

、そして近いこと(これの前に ">?")の前に、 "エコー" を実行します:これを行うには

<script> 
    $(".showavgloc").click(function(){ 
     event.preventDefault(); 
     $(".averageloc").slideToggle("slow"); 
    }); 
    $(".showavgvis").click(function(){ 
     event.preventDefault(); 
     $(".averagevis").slideToggle("slow"); 
    }); 
</script> 
<?php 
foreach ($teams as $team) { 
    if ($page=="game") { 
     if ($team==$locteam) { 
      echo "<button class='showavgloc'>Show average player</button>"; 
     } 
     if ($team==$visteam) { 
      echo "<button class='showavgvis'>Show average player</button>"; 
     } 
    } 
    if ($team==$locteam) { 
     echo "<div class='averageloc' style='display:none'>This div has to be shown/hidden for local team</div>"; 
    } 
    if ($team==$visteam) { 
     echo "<div class='averagevis' style='display:none'>This div has to be shown/hidden for road team</div>"; 
    } 
} 
?> 
+0

私たちに '$ teams'のコンテンツ例を見せてください。 – lolbas

+0

$ teamsは2つの文字列変数を含む配列です:$ teams =($ locteam、$ visteam) – Javi

+0

'$ locteam'と' $ visteam'はどこに定義されていますか? –

答えて

0

てみ

<script> 
    $(".showavgloc").click(function(){ 
     event.preventDefault(); 
     $(".averageloc").slideToggle("slow"); 
    }); 
    $(".showavgvis").click(function(){ 
     event.preventDefault(); 
     $(".averagevis").slideToggle("slow"); 
    }); 
</script> 

とあなたが望むように使ってみてください。これは、jQueryライブラリを使用してhtmlスローコードを生成すると、DOMが "初期"バージョンを保持し、コントロールを決して見つけられないため、jQueryが正しく機能しないために役立ちます。正しい順序は、コントロールを印刷してjQueryイベントをバインドすることです。すべてが含まれている場合

幸運

+0

私はそれがまだではないのですか?ワーキング。 2番目のボタンは何もしません...どうかありがとう! – Javi

+0

大丈夫、それは「働いている」のです!! 2番目のボタンは完全に機能し、1番目のボタンはクリックすると3つのことを行います:show/hide/show。または非表示/表示/非表示にします。素晴らしい! – Javi

+0

ブラウザコンソールを使用してドキュメントを検査し、何が表示されるのか教えてください。 PHPで生成された部分はそこにありますか? –

0

あなたのコードは正常に動作するようです:

$(".showavgloc").click(function(){ 
 
    event.preventDefault(); 
 
    $(".averageloc").slideToggle("slow"); 
 
}); 
 
$(".showavgvis").click(function(){ 
 
    event.preventDefault(); 
 
    $(".averagevis").slideToggle("slow"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button class='showavgloc'>Show average player</button> 
 
<button class='showavgvis'>Show average player</button> 
 
<div class='averageloc' style='display:none'>This div has to be shown/hidden for local team</div> 
 
<div class='averagevis' style='display:none'>This div has to be shown/hidden for road team</div>

私の推測では、他の何かが間違っているということです。あなたのページを調べて、PHPによってすべての要素が正しく印刷されていることを確認してください。すべてがうまくいけば、jQueryの "on"関数を使ってみることができます。この関数は、セレクタに一致する新しい要素を監視する必要があります。 https://api.jquery.com/on/

+0

ありがとうございます。ボタンがループを介して生成される – Javi

+0

生のボタンとdivが期待どおりに機能する場合、唯一の説明は、ループが正しく生成していないということです。残りの変数が設定されている部分を含むPHPコード?Chromeの検査ツールを使用してページを検査しましたか?正しいdivが実際にそこにあるかどうか確認してください。 – ctrimm

+0

それは最終的に動作します!それは、部分の配置に関するものでした。私はコードの最後まで(関連するループの下に)置くようにしました。それはうまくいきました...みなさんに感謝します。 – Javi

関連する問題