2016-04-20 4 views
1

У меня есть java-файл с именем myJavaFile.java. Внутри этого файла Java, у меня есть следующий код Java:Как получить доступ к переменной java в функции javascript

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>"); 

} 

Я уже пытался найти свой ответ, прочитав другие темы, но я до сих пор не может решить мою проблему. Я действительно пытался сделать это шаг за шагом и отображать свои переменные, чтобы убедиться, что все написано хорошо.

Большое вам спасибо за помощь!

+0

какая переменная? fn? Если да, то просто сделайте это: html.addElement ("var vars = \" firstname = \ "+ fn +" \; "); – mprabhat

+0

Большое спасибо за ваш ответ – tatiana77

ответ

2

Я считаю, что вы хотите вывести fn непосредственно, что-то вроде

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

Javascript позволяет использовать ' или " для String (ов), и вы можете также использовать String.format(String, Object...). Мол,

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

Большое спасибо за ответ, я его исправил Я действительно пытаюсь использовать java-переменную «fn», которая теперь является «первым именем» для приложения php. Это мой последний код, но я думаю, что у меня есть еще одна проблема, я не знаю, отправлено ли «firstname» или нет. Все, что я сделал, это просто поставить предупреждение в обоих случаях (ОК или не ОК), но ничего не отображается. Я также попытался установить свой текст типа ввода «статус» на моей стороне java, но ничего не отображается. Пожалуйста, дайте мне знать, если у меня есть идея, я очень ценю это. Спасибо. – tatiana77

+0

А? Почему вы включаете Java тогда? Вы можете сделать вызов ReST на ваш PHP с Java или из Javascript. Во всяком случае, ваш * вопрос *, похоже, касается встраивания JavaScript в Java. –

+0

Да, я встраиваю javascript в Java. Это существующее приложение, поэтому мне приходится иметь дело с ним, потому что все написано таким образом. – tatiana77

1

Вы должны изменить эту часть кода:

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

Для этого:

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

Большое вам спасибо за ответ, я исправил его. Я действительно пытаюсь использовать java-переменную «fn», которая теперь является «первым именем» для приложения php. Это мой последний код, но я думаю, что теперь у меня есть другая проблема, я не знаю, отправлено ли «firstname» или нет. Все, что я сделал, это просто поставить предупреждение в обоих случаях (ОК или не ОК), но ничего не отображается. также попытался установить мой текст типа ввода «статус» на моей стороне java, но ничего не отображается. Пожалуйста, дайте мне знать, если у меня есть идея, я очень благодарен. Спасибо. – tatiana77

+0

Можете ли вы опубликовать сгенерированный HTML? страница с Google Chrome, вы видите какую-либо ошибку в консоли разработчика? – SanF

+0

Здравствуйте, Sanf, я попытался поместить сгенерированный html, но он говорит, что он слишком длинный. У меня есть сгенерированный html. Есть ли способ отправить его сюда? – tatiana77

1

Просто используйте одиночный qoute ' вместо \" во всех ваших код, который сделает его более чистым, и замените эту часть:

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

By:

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

Надеется, что это помогает.

+0

Большое спасибо за ответ, я исправил его. Я действительно пытаюсь использовать java-переменную «fn», которая теперь является «первым именем» для приложения php. Это мой последний код, но я думаю, что теперь у меня есть другая проблема, я не знаю, отправлено ли «firstname» или нет. Все, что я сделал, это просто поставить предупреждение в обоих случаях (ОК или не ОК), но ничего не отображается. также попытался установить мой текст типа ввода «статус» на моей стороне java, но ничего не отображается. Пожалуйста, дайте мне знать, если у меня есть идея, я очень ценю это. Спасибо. – tatiana77

Смежные вопросы