次の関数は、クリック時に画像を含む div を「編集」クラスの各メイン div に追加します。
c.$k クラスの各サブディビジョンにオンクリックで divを挿入する必要があります。c1/c2 クラスのすべてのサブディビジョンには一意の ID があります。
基本的に、一意の IP を持つデバイスを表す各サブ div 内に、rrdtool によって作成されたグラフを表示する必要があります。(サブ div の ID)
つまり、各クラス c.$k div から ID を取得し、それを var y で「ipx」として使用する必要があります。
次に、新しい div class='graph' を各クラス c.$k divに挿入します。したがって、関数の 2 番目のパラメーター (ipx) は関係ないので無視できます。div class='edit' の「子」ID を使用する必要があります。
jquery を使用するのはこれが初めてで、どんな助けも大歓迎です。
function edit_mode(idname,ipx) {
var x = document.getElementById(idname);
$(x).toggle( "fade" );
// var subdivid = $("#idname").children("div");
var y = 'http://domain.com/index.php?ip='+ipx;
$("#"+idname+" img:last-child").remove();
$("<div class='graph'><img src='"+y+"'></div>").appendTo(x);
};
PHP コード:
$k=1;
$t="";
while($row = mysql_fetch_array($result)){
if ($row['id'] != $t) {
if ($t != "") {echo "</div>";}
echo "<div onclick=\"edit_mode('".$row['idDevice']."','".$row['IP']."')\">".$row['name']." ".$row['IP'] ."</div><br><div class=\"edit\" id=\"".$row['idDevice']."\">";
$t = $row['id'];
$k = 1;
}
echo "<div id=\"".$row['IP']."\" class=\"c".$k."\"><form method=\"post\" action=\"edit.php?idDevice=".$idDevice."\">";
.................................................................
echo "</form></div>";
$k = 1+($k % 2);
}
私はこれをやった:
function edit_mode(idname) {
var x = document.getElementById(idname);
$(x).toggle( "fade" );
var subdivid = $.map($('#idname > div'), function(child) { return child.id; });
var y = 'http://domain.com/index.php?ip='+subdivid;
$("#"+idname+" img:last-child").remove();
var el = document.createElement('div');
el.className="graph";
el.innerHTML = '<img src='+y+'>' ;
document.getElementById(subdivid).appendChild(el);
これは、1 つの子を持つ 1 つの親 div に対して機能することを除いて、まさに私が望むことを行っています。問題は次のとおりです。子 (subdivid) を持つ div (idname) の配列を動的に作成したときに、この関数を変更して機能させるにはどうすればよいですか。
ありがとうございました