Eine Zeile ausgeben und nach Klick noch zwei mehr

mkoeni1

Erfahrenes Mitglied
Hallo Leute,

ich sitzte hier vor einem Problem und benötige eure Hilfe. Ich hab die Suche strapaziert finde aber keinen Anhaltspunkt.

Mein Problem: Ich liste in einer Seite einen Spieler auf. Mit einem Klick auf
Code:
>>
sollen weitere Spieler aufgelistet werden (Javascript).

Das Prinzip sieht sollte naiv so aussehen (ohne SQL-Ausgabe):
PHP:
...
Text auf der Seite

<a href="javascript:more()" id="link1">+ More</a>

<div id="text" style="visibility:hidden;">
bla blu blub
</div>
</body>
</html>
das geht auch soweit gut. Nur will ich eine Ausgabe einer Tabelle ausgeben.
Die Datenbankabfrage kann ich (trocken) korrekt ausführen.
PHP:
SELECT COUNT( * ) AS repititions, `scorer_id_fk`
FROM `all_saison_tore`
GROUP BY `scorer_id_fk`
HAVING repititions > 0 ORDER BY repititions DESC LIMIT 3

Jetzt mein Problem. Wie kann ich es erreichen, dass zuerst ein Torschütze ausgegeben wird und nach einem Klick auf
Code:
>>
Nummer 2 und 3 folgen.

Ist das ein Ajax+Javascript Problem? Es hat aber durchaus mit der while Anweisung des SELECTS zu tun. Der Link >> (Ajax+Javascript ) auf der Seite ist korrekt programmiert.


Weiß jmd. einen Rat?
Diesen Code hab ich bis jetzt:
PHP:
$trifft = "SELECT COUNT( * ) AS repititions, `scorer_id_fk`
FROM `all_saison_tore`
GROUP BY `scorer_id_fk`
HAVING repititions > 0 ORDER BY repititions DESC LIMIT 3";
$count=mysql_query($trifft);

// $wieoft=$row["repititions"];
// $werwieoft=$row["scorer_id_fk"];
$i = 1;

echo '<table class="scorercontent" border="1">';
echo '<tr><td><u>Best Scorer</u> ever:&nbsp;';
echo '<a href="javascript:more()" id="link1">>></a></td></tr>';
echo '<tr><td>Spieler</td><td colspan="3" align="center">Tore</td>';
echo '<td></td></tr>';
while($row=mysql_fetch_assoc($count)){
  // aus scorer_id_fk Spielernamen aussuchen
$werwieoft = $row["scorer_id_fk"];   
$whoscorers=mysql_query("SELECT * FROM `all_scorer` WHERE scorer_id_pk = '$werwieoft'");
if (!$whoscorers) {
  die(mysql_error());
}
$row1=mysql_fetch_array($whoscorers);
$who=$row1["name"];
$whovor=$row1["vorname"];
$wieoft = $row["repititions"];
echo '<tr><td class="header">' .$who.', '.$whovor.'</td>';
echo '<td align="center"><b>' . $wieoft .'</b></td></tr>';

echo '<div id="ever">';
echo '<div id="text" style="visibility:hidden;">';
echo 'hier sollen die Schützen 2 und 3 Stehen';
echo '</div>';
echo '</div>';
}
echo '</table>';


Vielen Dank und Gruß
Matze
 
Zuletzt bearbeitet:
PHP ist eine serverseitige Scriptsprache. Das heisst du kannst die Seite nciht mehr verändern wenn Sie schon beim User angekommen ist(trivial ausgedrückt).
Mit JavaScript kannst du die Seite zur Laufzeit verändern, denn JS ist eine clientseiteige Sprache die im Browser interpretiert wird.
Wenn du nur eine überschaubare Anzahl von Daten hast, die beim klick erscheinen sollen, dann lass php diese daten doch beim erstellen der seite(also php/server-seitig) in ein div schreiben und setze dieses mittels Stylesheets auf hidden(hast diu ja schon gemacht).
Hast du eine große Datenmenge, die theoretisch abrufbar ist, dann wäre das Quatsch da der Seitenaufbau zu lange dauert. Dann rate ich dir dich mit AJAX vertraut zu machen(sollte man sowieso, ist nähmlich zukunft ;-) )
Eine gute Bibliothek für AJAX und PHP ist xajax
Mfg gamerfunkie
 
ist das nicht schon eine Art ajax? Ich meine die JavaScript Funktion ist diese:
Code:
<script language="JavaScript">
var anzeige=false;
function more(){
if (anzeige==false){
document.getElementById("text").style.visibility="visible";
document.getElementById("link1").innerHTML="- More";
anzeige=true;
}else{
document.getElementById("text").style.visibility="hidden";
document.getElementById("link1").innerHTML="+ More";
anzeige=false;
}
}
</script>
Was ist der Unterschied, bzw. Vor/Nachteile zwischen einer eigens geschriebenen Funktion und deinem beschriebenen Framework? Es ist mächtiger OK.

Guß Matze
 
Zuletzt bearbeitet:
nein mit ajax bezeichnet man eine Technik die wenn die Seite aufgebaut ist im hintergrund nochmals einen HttpRequest an den serverschickt und diesen ausführt.

Was du hier hast ist eine JS Funktion die komplett beim Seitenaufbau geladen wird und dann nur mit hidden und visible versteckt oder angezeigt.

das müsste aber für dein vorhaben dicke reichen wenn ich das so richtig verstanden habe.
 
Hallo.

ja du hast Recht, das habe ich mal irgendwo gelesen ;-)
Aber das ist für mein oben beschriebenes Problemchen zu overdose. Das reicht mit der hidden und visibility Technik aus. Die Daten sind ja schon auf dem Client!

Vielen Dank und Gruß
Matze
 
Zurück