funktionsaufruf ohne this.href ?
kointa
- php
Hi all,
ich versuche grad meine daten anstatt in einer datei stattdessen in einer mysql tabelle zu speichern und abzurufen.
es klappt auch alles soweit wunderbar, jedoch hat sich da jetzt einiges geändert.
zuvor habe ich einer funktion loadGame einfach das ?id=1 übergeben, und dann wurde in der funktion intern die zugehörigen werte wie url, width und height aus dem array mit der id 1 ausgelesen und weiterverarbeitet.
jetzt habe ich ja alle werte in meiner sql tabelle und muss demnach der funktion keine id mehr übergeben sondern eben die url , width und height direkt.
wenn ich bei href="$row->gameurl" eingebe und die funktion mit loadGame(this.href,$row->width,$row->height) aufrufe funktioniert alles wunderbar, jedoch habe ich dann einen direktlink zu dem game.
GENAU DAS möchte ich aber nicht, ich konnte bisher meine spiel wunderbar verlinken indem ich die ?id=1 an die baseurl angehängt habe und beim seitenaufruf eben die funktion loadGame aufrufen lies und die id auslesen lies.
jetzt habe ich es folgendermaßen versucht:
href="?id=$row->id" und loadGame($row->gameurl,$row->width,$row->height)
jedoch will es so einfach nicht funktionierten, aber wieso ?
MUSS MAN der funktion zwingend das href übergeben ?
hat vielleicht jemand eine bessere idee sowas zu realisieren ?
ich habe mich vll auch irgendwie verrannt, wäre für jede hilfe dankbar.
grüße
kointa
Hi there,
jedoch will es so einfach nicht funktionierten, aber wieso ?
MUSS MAN der funktion zwingend das href übergeben ?
Wer kann das schon wissen? Die Funktion loadGame ist irgendeine selbstgeschriebene Funktion, wie sollte man feststellen können, welche Parameter die benötigt oder gar, was die so tut...
Wer kann das schon wissen? Die Funktion loadGame ist irgendeine selbstgeschriebene Funktion, wie sollte man feststellen können, welche Parameter die benötigt oder gar, was die so tut...
meine frage war doch auch eher ob man zwingend das href einer mit onclick angesprochenen funktion übergeben muss !?
echo "<script type=\"text/javascript\">";
echo "function loadGame(url,width,height)";
echo "{";
echo "document.getElementById('close').style.display=\"block\";";
echo "document.getElementById('player').style.display=\"block\";";
echo "document.getElementById('player').innerHTML=\"<embed src='\"+url+\"' width='\"+width+\"' height='\"+height+\"' type='application/x-shockwave-flash'></embed>\";";
echo "return false;";
echo "}";
echo "</script>";
echo "<a href=\"?id=$row->id\" onclick=\"return loadGame($row->gameurl,$row->width,$row->height)\">$row->name</a>";
hilft das?
danke
meine frage war doch auch eher ob man zwingend das href einer mit onclick angesprochenen funktion übergeben muss !?
this.href reicht auch, falls du das meinst
this.href reicht auch, falls du das meinst
nein, das meine ich nciht ;)
ich meine ob man eine funktion aufrufen kann die das href nicht verwendet.
ich weis nciht wieso, aber wenn ich das this.href als zu übergebende variable entferne dann geht es nichtmehr !?
this.href reicht auch, falls du das meinst
nein, das meine ich nciht ;)
ich meine ob man eine funktion aufrufen kann die das href nicht verwendet.
natürlich - du kannst eine funktion aufrufen die keine parameter tut oder garnichts tut, oder einen parameter erwartet aber diesen dann nicht
function foo() {
alert('foo');
}
function bar() {
var bar = 'hello world';
}
function baz(url) {
alert('baz');
}
ebenso kannst du natürlich optionale parameter haben, dies muss aber in der funktion vorgesehen sein, da das sonst zu laufzeitfehlern führen könnte - ohne die funktion zu kennen ist das aber in deinem fall nicht beantwortbar
ebenso kannst du natürlich optionale parameter haben, dies muss aber in der funktion vorgesehen sein, da das sonst zu laufzeitfehlern führen könnte - ohne die funktion zu kennen ist das aber in deinem fall nicht beantwortbar
SO funktioniert es wunderbar !
echo "<script type=\"text/javascript\">";
echo "function loadGame(url,width,height)";
echo "{";
echo "document.getElementById('close').style.display=\"block\";";
echo "document.getElementById('player').style.display=\"block\";";
echo "document.getElementById('player').innerHTML=\"<embed src='\"+url+\"' width='\"+width+\"' height='\"+height+\"' type='application/x-shockwave-flash'></embed>\";";
echo "return false;";
echo "}";
echo "</script>";
$abfrage = "SELECT * FROM ls_games";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "<a href=\"$row->gameurl\" onclick=\"return loadGame(this.href,$row->width,$row->height)\">$row->name</a>";
}
SO aber nicht: (anstatt der gameurl aus dem href übergebe ich jetzt direkt die gameurl und lass dem href eine id)
echo "<script type=\"text/javascript\">";
echo "function loadGame(url,width,height)";
echo "{";
echo "document.getElementById('close').style.display=\"block\";";
echo "document.getElementById('player').style.display=\"block\";";
echo "document.getElementById('player').innerHTML=\"<embed src='\"+url+\"' width='\"+width+\"' height='\"+height+\"' type='application/x-shockwave-flash'></embed>\";";
echo "return false;";
echo "}";
echo "</script>";
$abfrage = "SELECT * FROM ls_games";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "<a href=\"?id=$row->id\" onclick=\"return loadGame($row->gameurl,$row->width,$row->height)\">$row->name</a>";
}
aber WARUM ?
danke
aber WARUM ?
danke
hmmmmm, ich schäme mich :D
loadGame('$row->gameurl',$row->width,$row->height)
die url muss natürlich in ''' ANFÜRHUNGSSTRICHE ''' :D
manchmal sieht man einfach vor lauter bäume den wald nichtmehr :(
Grüße
die url muss natürlich in ''' ANFÜRHUNGSSTRICHE ''' :D
manchmal sieht man einfach vor lauter bäume den wald nichtmehr :(
die stringbegrenzer sind nie ein fehler
dein generiertes html ist übrigens invalide (das embed-element ist nicht grade der renner) - warum generierst du kein valides object-element?
und was jetzt gegen "this.href" spricht, versteh ich immer noch nicht - damit blähst du den code nur unötig auf
noch kürzer wäre es die referenz "this" zu übergeben und im javascript dann "url.href" zu verwenden