[Gelöst] Collapsible mit Schleife (aber keine Masche)

atsWien

fühlt sich hier wohl
Hallo Forum,

hab wieder einmal eine frage an der ich schon seit Tagen sitze.

Das erklären ist villeicht am einfachsten wenn Ihr euch das mal anseht:

VoIP4.at * nach Namen Abfrage

In Familienn einfach %
und in Vorn c%

eigendlich sollte man nur namen sehen und beim anklicken den rest.
funkt auch aber leider immer nur beim ersten ;-(

PHP:
<?php //do { ?>

  <div id="CollapsiblePanel<? echo $id1[0]; ?>" class="CollapsiblePanel">
    <div class="CollapsiblePanelTab" tabindex=""><span class='Stil8'><?echo $zeile10['name'] ?></span></div>
    <div class="CollapsiblePanelContent"><?echo $zeile10['name'] ?>,  Strasse:  <?echo $zeile10['strasse'];?>,  Nummer:  +<? echo $zeile10['gnummer'] ;?></div>
  </div>

  <p>
  <script type="text/javascript">
<!--
var CollapsiblePanel<? echo $id1[0]; ?> = new Spry.Widget.CollapsiblePanel("CollapsiblePanel<? echo $id1[0]; ?>", {contentIsOpen:false});
//-->

<!-- Ende neuer teste-->
</script>
  <? } // while ($row_Recordset1 = mysql_fetch_array($row_Recordset1['ID'])); ?>

ich habe dies schon auf alle möglichen varianten versucht und auch schon viel gesucht, leider ohne erfolg.

wäre nett wenn mir jemand einen tip geben kann oder wie ich dies mit einem anderen Code verwirklichen kann.

lg Christian
 
Zuletzt bearbeitet von einem Moderator:
Hallo an alle,

nach viellem googlen habe ich das Problem gefunden, denke ich ;)

Kann es sein das man "javascript" nicht in eine PHP schleife einbinden kann ???

wäre um eine antwort dankbar.

lg Christian
 
Javascript läuft clientseitig, php läuft serverseitig. Daher können und werden beide gemischt verwendet (werden).
Bei deinem Script stimmen die öffnenden / schließenden Klammern (in dem hier gezeigten Kontext) nicht...
 
Zuletzt bearbeitet:
Hallo EISer,

SCHÖN das Du wieder hier bist ;)

das Mit den Klammern dachte ich auch aber wie ich es versuche ging es nicht.

mitlerweile habe ich auch schon vielle andere dinge versucht alle ohne erfolg. ;-(

Aber nochmal zu den verschiedenen Varianten.

PHP:
<?
$test = 0;

echo '<table border="1" width="600"class="tableerg">Ihre Abfrage:';

while($zeile10 = mysql_fetch_array($ergeb15))
//if($zeile10 = mysql_fetch_array($ergeb15))

{
//----Test
?>
</p>
<?$name[]=$zeile10['name'];?>
<?$adr[]=$zeile10['strasse'];?>
<?$id[]=$zeile10['ID'];?>

<?$id1[]=$row_Recordset1['ID'];?>

<?for( $i = 0; $i < count($_array); $i++ )?>

<!-- neuer teste-->

<!--
  <div id="CollapsiblePanel<? echo $id1[++$test]; ?>" class="CollapsiblePanel">
    <div class="CollapsiblePanelTab" tabindex=""><span class='Stil8'><?echo $zeile10['name'];?></span></div>
    <div class="CollapsiblePanelContent"><?echo $zeile10['name'] ?>,  Strasse:  <?echo $zeile10['strasse'];?>,  Nummer:  +<? echo $zeile10['gnummer'] ;?></div>
  </div>

  <p>
  <script type="text/javascript">
<!--

var CollapsiblePanel<? echo $id1[$test]; ?> = new Spry.Widget.CollapsiblePanel("CollapsiblePanel<? echo $id1[$test]; ?>", {contentIsOpen:false});

//-->

<!-- Ende neuer teste-->
<!--
</script>
-->
 <? } // while ($row_Recordset1[0] = mysql_fetch_array($row_Recordset1[0])); ?>

bis daher hätte ich es, aber egal wo die klammern sind es geht nicht. ;-(
***********************
als neue version hätte ich es jetzt so versucht:

PHP:
<?
$test = 0;

echo '<table border="1" width="600"class="tableerg">Ihre Abfrage:';

while($zeile10 = mysql_fetch_array($ergeb15))

{
//----Test
?>
</p>
<?$name[]=$zeile10['name'];?>
<?$adr[]=$zeile10['strasse'];?>
<?$id[]=$zeile10['ID'];?>

<?$id1[]=$row_Recordset1['ID'];?>

<?for( $i = 0; $i < count($_array); $i++ )?>

<!-- neuer teste-->
<script type="text/javascript">
 <!--
function MM_showHideLayers() { 
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
}
//-->
</script>

<div id="apDiva<?php echo ++$test?>" onMouseOver="MM_showHideLayers('apDivb<?php echo $test?> ','','show')" onMouseOut="MM_showHideLayers('apDivb<?php echo $test?> ','','hide')"><a href="#"><?echo $zeile10['name'];?></a></div>
<div id="apDivb<?php echo $test?> ">Strasse:  <?echo $zeile10['strasse'];?>,  Nummer:  +<? echo $zeile10['gnummer'] ;?></div>

 <? } // while ($row_Recordset1[0] = mysql_fetch_array($row_Recordset1[0])); ?>

aber es ist immer das gleiche ergebniss ;-(

leider

lg Christian

ps. derzeit läuft die zweite , aber leider wieder nicht so wie es sein soll
 
Schau Dir mal den Quelltext der von dem Script erzeugten Html-Seite an...

Du erzeugst u.a. x-mal den Javascript Block...

Planvolles vorgehen: Gestalte die html-seite mal mit 3 CollapsiblePanels. Das, was sich wiederholen muß (Einzelne Datensätze), packe dann in eine Schleife.
 
Hallo ELSer,
Danke ich werde diees gleich morgen versuchen und gebe Dir dann Bescheid .

Lg und danke für den Hinweis :)
 
Hallo EiSer,

DANKE der untere Code hat gefunkt :), beim oberen leider nicht bin aber noch beim testen und gebe Dir auch da die Info.

PHP:
<!-- neuer teste-->
<script type="text/javascript">
 <!--
function MM_showHideLayers() { 
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

//-->
</script>

// diesen teil habe ich ganz oben eingebaut, gleich nach </style> nur fals es noch jemanden interesiert

<?
$test = 0;

echo '<table border="1" width="600"class="tableerg">Ihre Abfrage:';

while($zeile10 = mysql_fetch_array($ergeb15))

{
//----Test
?>
</p>
<?$name[]=$zeile10['name'];?>
<?$adr[]=$zeile10['strasse'];?>
<?$id[]=$zeile10['ID'];?>

<?$id1[]=$row_Recordset1['ID'];?>

<?for( $i = 0; $i < count($_array); $i++ )?>


<div id="apDiva<?php echo ++$test?>" onMouseOver="MM_showHideLayers('apDivb<?php echo $test?> ','','show')" onMouseOut="MM_showHideLayers('apDivb<?php echo $test?> ','','hide')"><a href="#"><?echo $zeile10['name'];?></a></div>
<div id="apDivb<?php echo $test?> ">Strasse:  <?echo $zeile10['strasse'];?>,  Nummer:  +<? echo $zeile10['gnummer'] ;?></div>

 <? }  ?>

der erste schritt zum verständniss ist Da , DANKE EiSer ;)

jetzt noch den zweiten dann sollte ich weiter kommen
 
Hallo EiSer,

;) nochmals DANKE :)

beim ersten Beispiel wäre eigendlich alles richtig, der einzige unterschied war das sich das Skript das sich hinter dem CollapsiblePanel verbirgt eine eigene JS seite war.

diese habe ich jetzt auf der gleichen seite und es funkt. ;)

DANKE für Deine GEDULD !!

lg Christian
 
Oben