Archiv verlassen und diese Seite im Standarddesign anzeigen : [JavaScript] Übergabe Varibale in JS?
Morpheus2100 17-12-2007, 14:09 Hallo Jungs und Mädls,
irgendwie such ich was, was ich nicht finde:
alter Code:
onclick=\"mg=$key;get(null,'ajax.accept_policy.php?p_id=$key$ihsession','set_accepted_$key')
Jetzt wollte ich eine Confirm abfragen einbauen, wie schaffe ich es dass mit die var "mg" auch mitgeben wird, so wie bei onclick?
function confirm_policy($mg)
{
var box=window.confirm("Wollen Sie die Policy wirklich akzeptieren?")
if(box==true){
mg=$mg;
alert ($mg);
get(null,'ajax.accept_policy.php?p_id=$key$ihsession','set_accepted_$key');
alert("Policy wurde akzeptiert!");
}
else if(box==false){
alert("Policy wurde abgelehnt!");
}
}
str='&mg='$mg;
'ajax.accept_policy.php?p_id=$key$ihsession'+str
so was?
gruß
peter
Morpheus2100 17-12-2007, 15:45 Hmm mag er irgendwie nicht!
Aktueller CODE:
function confirm_policy(mg)
{
var box=window.confirm("Wollen Sie die Policy wirklich akzeptieren?")
if(box==true){
mg_temp ='&mg='+mg;
//alert (mg_temp);
get(null,'ajax.accept_policy.php?p_id=mg$ihsession','set_accepted_$key');
alert("Policy wurde akzeptiert!");
}
else if(box==false){
alert("Policy wurde abgelehnt!");
}
}
wie schaffe ich es denn Sinngemäß das selbe zu machen wie da:
onclick=\"mg=$key;get(null,'ajax.accept_policy.php?p_id=$key$ihsession','set_accepted_$key')
wie kann ich den die "var mg_temp" in den funktionsaufruf von "get" schreiben so dass es das gleiche ergibt wie bei dem onklick?`
Danke für euere Hilfe!
Schöne Grüße
Morph
onemorenerd 17-12-2007, 16:01 Vorher:onclick=\"mg=$key;get(null, 'ajax.accept_policy.php?p_id=$key$ihsession', 'set_accepted_$key')
Zwischendurch:
function confirm_policy() {
get(null, 'ajax.accept_policy.php?p_id=$key$ihsession', 'set_accepted_$key');
}
onclick="confirm_policy();"
Eigentlich schon fertig. Wenn du $key unbedingt als Parameter übergeben willst, dann so:function confirm_policy(mg) {
get(null, 'ajax.accept_policy.php?p_id='+mg+'$ihsession', 'set_accepted_'+mg);
}
onclick="confirm_policy('$key');"
Ist aber Quatsch, denn offensichtlich steht $key schon bei der Ausgabe der JS-Funktion fest und kann daher direkt in den Funktionscode geschrieben werden.
Dein if() kannst du sicher selbst wieder reinbasteln.
über zeichenkettenverknüpfung:
var blubb = 'blubber';
'ajax.accept_policy.php?mess=' + blubb + '&bla=irgendwas'
außerdem habe ich den eindruck, du schmeißt da php und javascript irgendwie durcheinander. woher kommt denn mg überhaupt?
gruß
peter
Morpheus2100 18-12-2007, 08:47 Ich glaub ich bring das irgendwie falsch rüber?
Also nochmal genauer:
Das ist der Code auf einem SPAN, mit welchem ich eine ajax Aktion aufrufen. Wie man sehen kann gebe ich vor dem funktionaufruf eine Variable mg=$key mit!!
//DAS IST IM PHP CODE
onclick=\"mg=$key;get(null, 'ajax.accept_policy.php?p_id=$key$ihsession', 'set_accepted_$key')
und jetzt möchte ich eigentlich nur eine Abfrage mit einbauen:
// DAS IST JS CODE
function confirm_policy(mg,ihsession)
{
var box=window.confirm("Wollen Sie die Policy wirklich akzeptieren?")
if(box==true){
mg_temp ='&mg='+mg;
//alert (mg_temp);
get(null,'ajax.accept_policy.php?p_id='+mg_temp+ihsession','set_accepted_$key');
alert("Policy wurde akzeptiert!");
}
else if(box==false){
alert("Policy wurde abgelehnt!");
}
}
Ich hatte noch einen Fehler mit $ihsession, das hab ich übersehen, was aber nicht wirklich dramatisch ist.
Jetzt rufe ich das ganze so in auf einem SPAN auf:
onclick=\"confirm_policy($key,$ihsession);\"
funktioniert aber immer noch nicht?
Erstens er übergibt $ihsession nicht?? Was is das falsch, und ich hab immer noch das Problem mit der Var übergabe mg!?
Wenn ich es so wie jetzt schreiben, bekomm ich auch noch einen Syntax fehler!??
PHP-Desaster 18-12-2007, 08:56 Was steht denn in $key und $ihsession? Dir ist schon klar, dass die beiden Variablen PHP-Seitig ausgewertet werden und am Schluss valides JS rauskommen muss, d.h. Strings in Anführungszeichen, etc.?!
Morpheus2100 18-12-2007, 09:10 Ahh vielleicht hab ich da was übersehen?
Also in key ist eine Nummer drinnen!
Und in ihsession sowas "$ihsession = '&TEST='.$sess;" !
Also muss das ganze in "" ?
Mfg
Morph
als erstes solltest du mal die php-variablen auch per php ausgeben. du kannst das nicht einfach mit javascript wild kombinieren.
gruß
peter
Morpheus2100 18-12-2007, 09:20 Original geschrieben von Kropff
als erstes solltest du mal die php-variablen auch per php ausgeben. du kannst das nicht einfach mit javascript wild kombinieren.
gruß
peter
Wie meinst du das? Ausgeben?
mg_temp ='&mg='+<? echo $mg;?>;
z.b.
gruß
peter
Morpheus2100 18-12-2007, 09:33 Original geschrieben von Kropff
mg_temp ='&mg='+<? echo $mg;?>;
z.b.
gruß
peter
ich stell mich da jetzt echt zu blöd an, das hinzu kriegen?
also in $ihsession steht
$ihsession = '&INTERHYP='.$sess;
und aufgerufen wird es so:
$html.= " <div class=\"sendbutton\">
<div id=\"set_accepted_$key\" onclick=\"confirm_policy($key,'$ihsession');\"
class=\"acceptbutton_content\">annehmen</div>
</div></td>";
Man muss vielleicht noch dazu sagen, dass das $html von einer Funktion returnt wird!
Aber eskommt im JS nichts an??? $key kommt an, $ihsession nicht????
informier dich mal über den unterschied zwischen " und '. was glaubst du, passiert hier?
'$ihsession'
siehe auch zeichenketten (http://www.peterkropff.de/tutorials/php_mysql_bsp/zeichenketten.htm)
gruß
peter
PHP-Desaster 18-12-2007, 09:49 Ist die Zuweisung an $ihsession denn auch in der Funktion? error_reporting oben? Was erhälst du denn als JS-Ausgabe?
@Kropff: Die Variable steht schon in doppelten Hochkommata: "...'$ihsession'...", das ist schon ok (wenn auch nicht besonders schön!)
upsi, übersehen. ich weiss schon, warum ich das so nie schreibe
gruß
peter
Morpheus2100 18-12-2007, 10:09 Original geschrieben von PHP-Desaster
Ist die Zuweisung an $ihsession denn auch in der Funktion? error_reporting oben? Was erhälst du denn als JS-Ausgabe?
@Kropff: Die Variable steht schon in doppelten Hochkommata: "...'$ihsession'...", das ist schon ok (wenn auch nicht besonders schön!)
Die $ihsession ist nicht in der funktion aber mit global deklariert:
//wenn ich ein echo rein mach, dann steh sie auch korrekt da!
GLOBAL $ihsession;
$ihsession = '&test='.$sess;
Also js Ausgabe krieg ich eben nichts??? Das is ja das komische!
P.S. wenn ich direkt einen String reinschreibe, dann gehts:
$test = "asdf";
confirm_policy($key,'$test')
also wenn sie nicht in dieser funktion ist, dann doch in einer anderen, da du sie als global definiert hast. und wo rufst du die funktion auf? btw: mal an $GLOBALS gedacht?
gruß
peter
Morpheus2100 18-12-2007, 11:10 Original geschrieben von Kropff
also wenn sie nicht in dieser funktion ist, dann doch in einer anderen, da du sie als global definiert hast. und wo rufst du die funktion auf? btw: mal an $GLOBALS gedacht?
gruß
peter
Sehr guter Tipp, genau das wars! Irgendwie hab ich das übersehen! Also die session gibt er jetzt mit! DANKE!
Jedoch hab ich noch immer das Problem dem "mg" !
WEnn ich das ganze so aufrufe:
get(null,'ajax.accept_policy.php?p_id='+mg+ihsession,'set_accepted_$key');
funktionierts nicht! Ist irgendwie nicht das gleiche wie:
onclick="mg=$key;get(null, 'ajax.accept_policy.php?p_id=$key$ihsession', 'set_accepted_$key')
weil du wieder mal deine php- und javascript-variablen durcheinander wirfst. schau mal genau hin!
gruß
peter
Morpheus2100 18-12-2007, 11:23 Das ist der JS CODE:
GEHT NICHT!
mg_temp ='&mg='+mg;
get(null,'ajax.accept_policy.php?p_id='+mg+ihsession+mg_temp,'set_accepted_$key');
DAS IST IM PHP CODE:
GEHT SCHON!
onclick="mg=$key;get(null, 'ajax.accept_policy.php?p_id=$key$ihsession', 'set_accepted_$key')"
Ich schmeiß ja da nichts durcheinander!
1. schrei hier nicht rum
2. mal die fehlerkonsole vom firefox benutzt?
peter
PHP-Desaster 18-12-2007, 11:44 Ich geb's auf! Ohne vernünftige Informationen lass ich euch alleine!
onemorenerd 18-12-2007, 11:46 Gib $key und $ihsession als Javascript-Strings aus, also in ''.
Morpheus2100 18-12-2007, 11:51 Original geschrieben von Kropff
1. schrei hier nicht rum
2. mal die fehlerkonsole vom firefox benutzt?
peter
Sorry vergess immer dass ir großschreib als schreien interpretiert! War keine absicht!
Ich entwickle nur im IE, da wir firmen intern nur IE einsetzten! ;-)
Morpheus2100 18-12-2007, 11:55 Original geschrieben von onemorenerd
Gib $key und $ihsession als Javascript-Strings aus, also in ''.
Wie meinst du das?
Beim aufruf:
onclick=\"confirm_policy('$key','$GLOBALS[ihsession]');\"
Also ich hab die Variablen im js code, da sind sie vorhanden, jedoch weis ich nicht wie das in reinem js nachbilden könnte?
Ich weis nicht was er hier genau macht??
onclick="mg=$key;get(null, 'ajax.accept_policy.php?p_id=$key$ihsession', 'set_accepted_$key')"
was macht onklick mit der mg=$key; varibale, hänt er sie irgenwo an, speichert er sie in eine session??
Das ist eigentlich alles was mich interssiert.
onemorenerd 18-12-2007, 12:03 Da wird onclick einfach die Variable mg (deklariert und) mit dem Wert von $key belegt. Vielleicht wird mg später noch gebraucht, im onclick-Handler jedenfalls nicht, denn da wurde $key direkt hingeschrieben.
Morpheus2100 18-12-2007, 12:35 Original geschrieben von onemorenerd
Da wird onclick einfach die Variable mg (deklariert und) mit dem Wert von $key belegt. Vielleicht wird mg später noch gebraucht, im onclick-Handler jedenfalls nicht, denn da wurde $key direkt hingeschrieben.
ja die wird später in einen ajax skript gebraucht! Wie kann ich das denn nachbilden, in meiner "confirm_policy" funktion?
Danke für die Hilfestellung!
onemorenerd 18-12-2007, 13:07 Wieso solltest du das in confirm_policy() aufnehmen? Was stört dich daran, wenn es im onClick Handler steht?
Morpheus2100 18-12-2007, 13:26 Original geschrieben von onemorenerd
Wieso solltest du das in confirm_policy() aufnehmen? Was stört dich daran, wenn es im onClick Handler steht?
Weils dann leider immer noch ned geht??
onclick=\"mg=$key;confirm_policy('$key','$GLOBALS[ihsession]');\"
Versteh ich jetzt nicht?
onemorenerd 18-12-2007, 13:43 Du hast ja inzwischen geschafft, dass das PHP-Script die richtigen Werte ausgibt. Könnten wir uns jetzt darauf einigen, dass du uns nur noch die fertige Ausgabe (Quelltext der HTML-Seite) zeigst? Damit wäre die Verwirrung etwas geringer. *sic*
Geht nicht ist keine Fehlerbeschreibung! Was geht nicht und hängt das wirklich von der Zuweisung an mg ab? Übrigens ist es entweder immer '$key' oder nur $key - nicht mal so und mal so!
Morpheus2100 18-12-2007, 14:05 Das ist mein aktueller CODE:
<div onclick="mg=101;confirm_policy('101','&test=2342423dddsdwe);">annehmen</div>
also die ausgabe passt! Jedoch checked er das mit dem mg nicht?
Mfg
Morph
onemorenerd 18-12-2007, 14:27 Die Ausgabe passt nicht. Da fehlt ein '.
Fehlermeldungen auf der Javascript-Konsole oder in Firebug?
Morpheus2100 18-12-2007, 15:16 Original geschrieben von onemorenerd
Die Ausgabe passt nicht. Da fehlt ein '.
Fehlermeldungen auf der Javascript-Konsole oder in Firebug?
Irgendwie zerhaut das Form den CODE:
<div id="set_accepted_88" onclick="mg=88;confirm_policy('88',&test=e8057dbd820e1a51a090969ef6d35537);"
class="acceptbutton_content">annehmen</div>
Das ist der echte HTML code
onemorenerd 18-12-2007, 15:43 Original geschrieben von Morpheus2100
Das ist der echte HTML code
und der ist nicht fehlerfrei.
Um &test=e8057dbd820e1a51a090969ef6d35537 fehlen die Anführungszeichen und - ich wiederhole mich - 88 ist entweder immer eine Zahl oder ein String.
Hast du überhaupt Firebug? Der würde bei sowas sofort rot anzeigen, wo der Fehler steckt.
hab ich ihm auch schon vorgeschlagen, aber der arbeitet lieber mit dem ie. obwohl es dafür auch eine developer toolbar mit debugger gibt.
gruß
peter
Morpheus2100 19-12-2007, 08:32 Guten Morgen,
also die IE Toolbar hab ich , jedoch seh ich da keine Debug funktion?
Vielleicht mach ich mir mal Firefox drauf, wegen diesem Firebug!
Zu den Anführungszeichen, ich hab das doch in einfachen drinnen? Mach ich da was falsch?
$html.= "<div class=\"sendbutton\">
<div onclick=\"mg=$key;confirm_policy($key,'$GLOBALS[ihsession]');\" >annehmen</div>
</div></td>";
onemorenerd 19-12-2007, 15:31 Ich habe den Verdacht, dass die zuletzt gepostete Ausgabe nicht die des zuletzt geposteten PHP-Codes ist. Prüfe das mal!
Morpheus2100 19-12-2007, 16:19 Hier ist der aktuelle PHP CODE:
$html.= "<div class=\"sendbutton\">
<div id=\"set_accepted_$key\"
onclick=\"mg=$key;confirm_policy($key,'$GLOBALS[ihsession]');\"
class=\"acceptbutton_content\">annehmen</div>
</div></td>";
UND das der erzeugte HTML CODE:
<div id="set_accepted_143" onclick="mg=143;confirm_policy(143,'&test=4317db25c645');" class="acceptbutton_content">
annehmen
</div>
onemorenerd 19-12-2007, 23:06 Wußte ich doch! :cool:
Klemmts noch irgendwo oder läuft es jetzt?
Morpheus2100 20-12-2007, 08:25 Geht noch immer nicht? keine Ahnung was da nicht stimmt? Wenns nicht will mach ichs ohne überprüfung.
Danke
Mfg
Michael
Morpheus2100 20-12-2007, 13:56 Kann mir denn da wirklich keiner helfen?
Mfg
Morph
Morpheus2100 20-12-2007, 14:28 Ich habs, das gibts nicht! Ich dreh gleich am RAD!
function confirm_policy(mg,ihsession)
{
var box=window.confirm("Wollen Sie die Policy wirklich akzeptieren?");
if(box==true){
get(null,'ajax.accept_policy.php?p_id='+mg+ihsession,'set_accepted_$key');
alert("Policy wurde akzeptiert!");
}
else if(box==false){
alert("Policy wurde abgelehnt!");
}
}
Da liegt der Hund begraben:
set_accepted_$key
$key in js tu ich mir ziemlich schwer!
get(null,'ajax.accept_policy.php?p_id='+mg+ihsession,'set_accepted_'+mg);
Das wars! DANKE!
|
-
- |