Помогите с пунктом 1 ,пожалуйста
Я так понимаю, что нужно сделать java-script-сценарий,
который считает инфо из апплета
и пошлёт ее php-файлу на сервере ?
Страничка не должна измениться.
Здравствуйте, ChromY, Вы писали:
CY>Есть страничка, в ней Java-applet и кнопка. CY>По кнопке нужно из апплета считать строку CY>и записать в БД на сервере. CY>БД на сервере я создал. CY>Осталось
CY>1. Сделать что-то с кнопкой
CY><form action = ??? > CY><p><button>Сохранить данные</button> CY></form>
CY>2. Сделать php-файл.
CY>Помогите с пунктом 1 ,пожалуйста CY>Я так понимаю, что нужно сделать java-script-сценарий, CY>который считает инфо из апплета CY>и пошлёт ее php-файлу на сервере ? CY>Страничка не должна измениться.
jQuery в помощь:
<form action="/handler.php" method="post">
<button onclick="document.postData(this)">Сохранить данные</button>
</form>
<!--
...
/-->
<script language="JavaScript" type="text/javascript">
document.postData = function(button) {
var value;
// Получить строку из апплета в переменную value
// и проверить ее как-нибудь
$.post( button.form.action, { value: value } );
};
</script>
При нажатии на кнопку ошибки нет.
В брузере появляется пустая страничка ..../handler.php
И становится доступной кнопка "назад".
Я нажимаю на кнопку назад и возвращаюсь на страничку с апплетом.
Что делать ?
Здравствуйте, ChromY, Вы писали:
CY>При нажатии на кнопку ошибки нет. CY>В брузере появляется пустая страничка ..../handler.php CY>И становится доступной кнопка "назад". CY>Я нажимаю на кнопку назад и возвращаюсь на страничку с апплетом. CY>Что делать ?
По хорошему, нужно правильно сделать HTML разметку:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Работа с формой</title>
</head><body>
<form action="/handler.php" method="post"><div>
<input type="button" onclick="document.postData(this)" value="Сохранить данные" />
</div></form>
<!--
...
/-->
<script type="text/javascript">
document.postData = function(button) {
var value;
// Получить строку из апплета в переменную value
// и проверить ее как-нибудь
$.post( button.form.action, { value: value } );
};
</script>
</body></html>
Здравствуйте, MicSOFT, Вы писали:
По хорошему, нужно правильно сделать HTML разметку:
Я сделал, как Вы советуете,
но результат тот же, и плюс
вместо русских букв на кнопке квадратики
и заголовок главного окна — тоже
квадратики вместо русских букв.
Здравствуйте, ChromY, Вы писали:
CY>Я сделал, как Вы советуете, CY>но результат тот же
Это м.б. следствием того, о чем написано ниже.
А вообще то надо бы еще заинклудить саму библиотеку jQuery:
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
document.postData = function(button) {
//
// У меня апплета нет, поэтому использую куклу
//
function dummy() {
return 'Это строка из Java-апплета';
}
var value = dummy();
if(value) $.post(button.form.action, { value: value });
};
</script>
CY>вместо русских букв на кнопке квадратики CY>и заголовок главного окна — тоже CY>квадратики вместо русских букв.
У меня в примере кодировка символов UFT-8, поэтому файл HTML должен быть сохранен именно в этой кодировке.
Если у вас CP-1251 или Cyrillic Windows, то нужно прописать:
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
document.postData = function(button) {
var value;
// Получить строку из апплета в переменную value
// и проверить ее как-нибудь
value = app1.getSrcLayout();
alert(value);
$.post( button.form.action, { value: value } );
};
</script>
</CENTER>
</BODY>
</HTML>
2. В форме есть кнопка (тег button), которая по умолчанию имеет type="submit".
Это значит, если по ней щелк, то она сделает form.submit(form.method, form.action) в target = self, что у вас и происходит: открывается handler.php.
Надо кнопке задать тип button, чтобы она не сабмитела:
MicSOFT, спасибо.
Исправил html (type="button")
Теперь страница handler.php не появляется.
Т.е. то, что надо.
Дальше я хочу убедиться, а вызывается ли handler.php.
Использовал file_put_contents, но handler.txt не появился.
Возможно такое, что на моем хостинге эта функция запрещена ?
С базой данных никаких изменений не происходит.
Запись не добавляется.
И еще вопрос:
Есть 2 пароля:
1-й для хостинга
2-й для БД
Какой пароль требует mysql_connect ?
Вот еще что я сделал.
У меня есть простенький http-сервер
(из MSDN samples)
Там можно худо-бедно проследить, что происходит.
php в нем не работает,
но если type="button" отсутствует, то вот что пишет браузер:
Удалённый сервер не имеет необходимой функциональности (код ошибки: 501)
Вы попытались получить доступ к адресу http://localhost/handler.php, который сейчас недоступен.
Это нормальная реакция.
Если type="button" присутствует, то сервер запрос не получает.
CY>Удалённый сервер не имеет необходимой функциональности (код ошибки: 501) CY>Вы попытались получить доступ к адресу http://localhost/handler.php, который сейчас недоступен. CY>Это нормальная реакция.
Тут тоже все понятно. Web-сервер получет запрос на обработку файла handler.php,
но он не знает, как обрабатывать ресурсы *.php (AddType application/x-httpd-php .php).
У Web-сервера же нет модуля расширения для обработки PHP сриптов (LoadModule php5_module WebServer/PHP/php5apache2)
Здравствуйте, ChromY, Вы писали:
CY>Здравствуйте, MicSOFT, Вы писали:
MSO>>А файл jquery-1.3.2.min.js где лежит?
CY>Вот этого я не знаю. CY>Не знаю где лежит, где должен и где его взять.
Дык, его надо скачать с оф. сайта jQuery.com.
Правда, щас они предлагают jquery-1.4.3.min.js (время не стоит на месте).
Если так, то надо исправить HTML страничку с Java-апплетом: