funktionsaufruf mit php und javascript

drupps

Grünschnabel
Hallo zusammen,

hab ein problem bei aufruf einer javascript-function mit php.

es soll ein teil einer tabelle nicht immer angezeigt werden.
Dafür habe ich zwei funktionen gebastelt. (einbelnden und ausblenden).

Code:
<script type="text/javascript">
<!--
function einblenden(elementname)
{
  document.getElementById(elementname).style.display='block';
  document.getElementById('lief_1').style.display='block';
}

function ausblenden(elementname)
{
  document.getElementById(elementname).style.display='none';
  document.getElementById('lief_1').style.display='none';
}
-->
</script>


im body habe ich ein onload="ausblenden('element'); stehen. Das klappt auch gut.
nun möchte ich nachdem ich einen Prüfwert aus der DB geholt habe die elemente wieder einblenden.
so hab ich es versucht. Aber es klappt nicht.

Code:
if($wert=="true")
  {
    echo "<script>einblenden('element');</script>
  }

Was mache ich flasch? Wie kann ich aus PHP herraus diese Funktion aufrufen?

Vielen Dank im Voraus.

drupps
 
Problem: Die Seite ist noch nicht geladen, wenn das script mit dem einblenden() schon ausgeführt wird, dh. zur Zeit wo einbleden() aufgerufen wird gibt es noch gar nichts, was eingeblendet werden kann. Außerdem wird danach sowieso ausbleden ausgeführt, sobald das ganze geladen ist.

Lösung:
Endweder du beldest den Tabellenteil direkt per PHP ein:
HTML:
<table>
  <tr><td>Ich bin der Teil der Tabelle der immer dasteht</td><tr>
  <?php 
  if ($wert == "true") {
  echo "<tr><td>Ich bin der Teil der Tabelle, der nur manchmal dasteht</td><tr>";
  }
  ?>
Oder du änderst den onload-Teil im body:
HTML:
 <body onload="
   <?php
 	if ($wert == "true") {
 	   echo "einblenden()";
 	} else {
 	  echo "ausblenden()";
 	}
   ?>
 ">
 
Zuletzt bearbeitet:
danke für die antwort. Problem nur:
-bei der ersten Lösung: dann kann ich die "nicht angezeigzeit" teile nicht einfach per klick sichtbar machen.
-bei der zweiten Lösung: bei load des Body ist der Wert noch nicht bekannt. Wird nämlich erst später aus der DB geholt.
 

Neue Beiträge

Zurück