Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP и JavaScript
 
 автор: Андрей   (21.11.2004 в 21:50)   письмо автору
 
 

Наверное спрашиваю глупость... но все-таки...

Можно ли из php вызвать функцию, написанную на JavaScript

   
 
 автор: glsv (Дизайнер)   (21.11.2004 в 22:14)   письмо автору
 
   для: Андрей   (21.11.2004 в 21:50)
 

Нет нельзя.
При создании сайтов PHP и JavaScript используются очень тесно. Но при этом они знать не знают про существование друг друга.

PHP выполняется на сервера, а JavaScript на клиенте. После того как PHP отработал - на выходе только HTML код и страница уходит в браузер.
Т.е. во время выполнения PHP нет JavaScript. А когда появляется JavaScript уже нет PHP. Таким образом одно из другого вызвать нельзя.

Но можно организовывать их взаимодействие через HTML-код и через обращения к серверу.
Какая у Вас задача?

   
 
 автор: 101km   (22.11.2004 в 12:07)   письмо автору
 
   для: glsv (Дизайнер)   (21.11.2004 в 22:14)
 

Почему можно:

<html>
<head>
<title>Мой доукумент</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<SCRIPT LANGUAGE="JavaScript" SRC="func.js"></SCRIPT>
</head>
<?
echo "<script>myfunction();</script>";
?>
</html>


Файл func.js

function myfunction()
{
alert("Hello, word!");
}

   
 
 автор: glsv (Дизайнер)   (22.11.2004 в 21:30)   письмо автору
 
   для: 101km   (22.11.2004 в 12:07)
 

Хм.. и так и не так.

PHP не может вызвать функцию JavaScript. Но он может сформировать HTML-код, к котором будет вызов JavaScript-a.
Т.е. вопрос тогда должен звучать так: как вызвать функцию JavaScript… Это вопрос без привязки к PHP. Потому что PHP знать не знает о JavaScript. Он делает черную работу – формирует HTML-код, который приходит в браузер. А уж в этом коде может быть все что угодно… и JavaScript в том числе.

   
 
 автор: Андрей   (22.11.2004 в 22:44)   письмо автору
 
   для: glsv (Дизайнер)   (22.11.2004 в 21:30)
 

Мне как раз нужно вывести MessageBox в случае, если телефон/факс заполнен не по форме.

alert("Пожалуйста, заполняйте поля телефон/факс, следуя следующим правилам:\n\nмеждународный код страны (+7 для России)\nпробел\nкод города" );

   
 
 автор: glsv (Дизайнер)   (23.11.2004 в 00:53)   письмо автору
 
   для: Андрей   (22.11.2004 в 22:44)
 

Схема работы такая?

1. Есть форма.
2. Из нее данные посылаются на скрипт-обработчик (страница php).
3. Скрипт проверяет заполнение формы и если есть ошибки, то... допустим, заново отображает форму и выдает MessageBox.

В скрипте-обработчике формируете код.

<?
  
// Если поля заполнены не правильно, то формируем сообщение JavaScript-ом
  
if (здесь условие на ошибку)
  {
  
?>
    <script language="JavaScript">
    <!-- 
      alert("Ошибка");
    // -->
    </script>
   <?  
  
}
?>

   
 
 автор: elenaki   (23.11.2004 в 08:51)   письмо автору
 
   для: glsv (Дизайнер)   (23.11.2004 в 00:53)
 

мне кажется, быстрее будет не отправлять данные на сервер, а проверять всю форму в браузере, Java-script'ом.
а уже проверенную заполненную форму отправлять на сервер.

   
 
 автор: 101km   (23.11.2004 в 10:47)   письмо автору
 
   для: elenaki   (23.11.2004 в 08:51)
 

На JScript получится типа этого:
<HTML>
<HEAD>
<TITLE></TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</HEAD>
<SCRIPT LANGUAGE="JScript">
function Ver()
  { if ("" == document.all.user.value) {alert ("Надо бы заполнить поле юзер."); return false;}
    if ("" == document.all.pass.value) {alert ("Надо бы заполнить поле пароль."); return false;}
    return true;
  }
</SCRIPT>
<BODY>
<CENTER>
<form id=addform action=conf.php method=post onSubmit= "return Ver();">
      <INPUT type=text maxlength=15 name=user>
      <br>
      <INPUT type=password maxlength=15 name=pass>
      <input type="submit" value="Ok!">
</form>
</CENTER>
</BODY>
</HTML>

   
 
 автор: glsv (Дизайнер)   (23.11.2004 в 22:14)   письмо автору
 
   для: elenaki   (23.11.2004 в 08:51)
 

Вообще то да.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования