2016-04-20 12 views
1

Ich habe eine Java-Datei namens myJavaFile.java. Innerhalb dieser Java-Datei, habe ich den folgenden Java-Code:Zugriff auf eine Java-Variable in JavaScript-Funktion

private void addUploadscript() { 

     //my java variable 
    String fn = session.getUser(); 

    html.addElement("<script language=\"JavaScript\" type=\"text/javascript\">"); 
    html.addElement("function ajax_post(){"); 
    html.addElement("var hr = new XMLHttpRequest();"); 
    html.addElement("var url = \"http://localhost:8080/bunk/inf?cmd=Dialer.opts#\";"); 
    html.addElement("var vars = \"firstname=\"+fn;"); 
    html.addElement("\talert(vars)"); 
    html.addElement("hr.open(\"POST\",url,true);"); 
    html.addElement("hr.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\");"); 
    html.addElement("hr.onreadystatechange = function() {if (hr.readyState == 4 && hr.status == 200) {var return_data = \"my server is reached\";document.getElementById(status).innerHTML = return_data;} } "); 
    html.addElement("hr.send(vars);"); 
    html.addElement("document.getElementById(status).innerHTML = \"processing....\";"); 
    html.addElement("}"); 
    html.addElement("</SCRIPT>"); 

} 

Ich habe bereits versucht, meine Antwort zu finden, indem sie die anderen Themen zu lesen, aber ich kann immer noch nicht mein Problem lösen. Ich habe tatsächlich versucht, es Schritt für Schritt zu tun und meine Variablen anzuzeigen, um sicherzustellen, dass ich alles gut geschrieben habe.

Vielen Dank für Ihre Hilfe!

+0

welche Variable? Fn? Wenn ja, tun Sie das einfach: html.addElement ("var vars = \" Vorname = \ "+ fn +" \; "); – mprabhat

+0

Vielen Dank für Ihre Antwort – tatiana77

Antwort

2

Ich glaube, Sie ausgeben wollen fn direkt, so etwas wie

html.addElement("var vars = \"firstname=" + fn + "\";"); 

Javascript können Sie ' oder " für String (n) verwenden, und Sie auch String.format(String, Object...) nutzen könnten.

html.addElement("var vars = \"firstname=\"+fn;"); 

Dazu: Wie,

html.addElement(String.format("var vars = 'firstname=%s';", fn)); 
+0

Vielen Dank für Ihre Antwort, ich habe es korrigiert Ich versuche gerade meine "fn" Java-Variable, die nun "Vorname" für eine PHP-Anwendung ist. Dies ist mein endgültiger Code, aber ich denke, ich habe jetzt ein anderes Problem, ich weiß nicht, ob "Vorname" gesendet wird oder nicht. Alles, was ich getan habe, ist nur eine Warnung in beiden Fällen (OK oder nicht OK), aber nichts wird angezeigt. Ich habe auch versucht, meinen "Status" -Eingabetyp auf meiner Java-Seite zu setzen, aber nichts wird angezeigt. Bitte lassen Sie mich wissen, wenn Sie eine Idee haben, ich weiß das wirklich zu schätzen. Vielen Dank. – tatiana77

+0

Huh? Warum beschäftigen Sie sich dann mit Java? Sie können einen ReST-Aufruf von Java oder von Javascript zu Ihrem PHP machen. Wie auch immer, Ihre * Frage * scheint darin zu bestehen, JavaScript in Java einzubetten. –

+0

Ja Ich bin Javascript in Java eingebettet. Dies ist eine existierende Anwendung, also muss ich damit umgehen, weil alles so geschrieben ist. – tatiana77

1

Sie sollten diesen Teil des Codes ändern

html.addElement("var vars = \"firstname=\"" + fn + "\";"); 
+0

Vielen Dank für Ihre Antwort, ich habe es korrigiert. Ich versuche tatsächlich meine "fn" Java-Variable, die jetzt "Vorname" zu einer PHP-Anwendung ist. Dies ist mein endgültiger Code, aber ich denke, ich habe jetzt ein anderes Problem, ich weiß nicht, ob "Vorname" gesendet wird oder nicht. Alles was ich getan habe, ist nur eine Warnung in beiden Fällen (OK oder nicht OK), aber nichts wird angezeigt versuchte auch, meinen "Status" -Eingangstext auf meiner Java-Seite zu setzen, aber nichts wird angezeigt. Bitte lassen Sie mich wissen, wenn Sie eine Idee haben, ich schätze das. Danke. – tatiana77

+0

Können Sie das generierte HTML veröffentlichen? Wenn Sie das öffnen Seite mit Google Chrome, sehen Sie irgendeinen Fehler in der Entwicklerkonsole? – SanF

+0

Hallo Sanf, ich habe versucht, die generierte html zu setzen, aber es sagt, dass es zu lang ist. Ich habe die generierte html. Gibt es irgendwelche über Weg, es hier zu senden? – tatiana77

1

Verwenden Sie einfach ' einzelne qoute statt \" in allen Code, der es sauberer macht, und ersetzen Sie diesen Teil:

html.addElement("var vars = \"firstname=\"+fn;") 

Von:

html.addElement("var vars = 'firstname='+fn;") 

Hoffnung, das hilft.

+0

Vielen Dank für Ihre Antwort, ich habe es korrigiert. Ich versuche tatsächlich meine "fn" Java-Variable, die jetzt "Vorname" zu einer PHP-Anwendung ist. Dies ist mein endgültiger Code, aber ich denke, ich habe jetzt ein anderes Problem, ich weiß nicht, ob "Vorname" gesendet wird oder nicht. Alles was ich getan habe, ist nur eine Warnung in beiden Fällen (OK oder nicht OK), aber nichts wird angezeigt Ich habe auch versucht, meinen "status" -Eingabetext auf meiner Java-Seite zu setzen, aber nichts wird angezeigt. Bitte lassen Sie mich wissen, wenn Sie eine Idee haben, ich weiß das wirklich zu schätzen. Danke. – tatiana77

Verwandte Themen