2015-01-09 4 views
0

Вот мой JS функция:JS функции скрипт не работает в PHP

function checkError() { 
      var field = 'error'; 
      var url = window.location.href; 
      document.write('test'); 
      window.alert('please work'); 
      if(url.indexOf('?' + field + '=') != -1) 
       document.write('The username and password do not match. Do not use your full email.'); 
return true;    
      } 

, а затем в моем теле пункте у меня есть:

<?php echo '<script> checkError();</script>' ?> 

Он не имеет каких-либо ошибок, назвав его. Но функция ничего не делает на моей странице. Есть предположения? Я попытался поставить JS-скрипт на странице и в JS-файле и правильно вызвал его включение.

Полный сценарий:

<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Secure Login</title> 
     <script type="text/JavaScript" src="js/functions.js"></script> 

     <link href="stylesheets/mainStyle.css" rel="stylesheet" type="text/css"> 
     <link href="stylesheets/formStyle.css" rel="stylesheet" type="text/css"> 
    </head> 

    <body> 

     <?php include('header.php'); ?> 

     <div id="mainContent"> 
      <h1>Member Login</h1> 
      <div id="mainParaText"> 
      <?php echo '<script> checkError();</script>' ?> 
     </div> 

    </body> 
</html> 

ОКАЗЫВАЕТСЯ JS функции неопределено. Ugh, не могу понять, почему (подумал, что я исправил эту проблему некоторое время назад lol)

+0

Показать полное использование этого скрипта. Любые ошибки в консоли? – Justinas

+0

обновлено сообщение – QuackMan245

+0

Посмотрите инструменты разработчика своего браузера. Посмотрите вкладку «Сеть». Является ли запрос на создание сценария? Получает ответ? Они содержат данные, которые вы ожидаете? – Quentin

ответ

-1

JS - клиентская сторона, а PHP - серверная.

Это означает, что все в PHP-коде будет обрабатываться на сервере, а затем «эхом» в ваш браузер, где вы получите неопределенную ошибку.

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

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

И не связано с вопросом ... Вы проверяете имя пользователя и пароль с помощью JS? Как именно вы это сделаете? С ajax перезвоните на сервер? Если вы проверите с JS, это означает, что пароль должен быть где-то в исходном коде, и это НЕ безопасно. Проверка имени пользователя и пароля всегда должна выполняться на сервере (с запросом ajax или обычной формой отправки).

+0

«Я немного догадываюсь, но попробую с двойными кавычками вместо одиночного». - Какая возможная разница могла бы дать данный код, который мы можем видеть? – Quentin

+0

если вы посмотрите на функцию, я проверяю запрос в url, который, если есть ошибка, перенаправляет пользователя на страницу входа с запросом на ошибку – QuackMan245

0

попробовать так:

<html> 
    <head> 
    <meta charset="UTF-8"> 
    <title>Secure Login</title> 
    <script type="text/JavaScript" src="js/functions.js"></script> 

    <link href="stylesheets/mainStyle.css" rel="stylesheet" type="text/css"> 
    <link href="stylesheets/formStyle.css" rel="stylesheet" type="text/css"> 
    <script type="text/javascript"> 
     function checkError(){ 
      var field = 'error'; 
     var url = window.location.href; 
     document.write('test'); 
     window.alert('please work'); 
     if(url.indexOf('?' + field + '=') != -1) 
      document.write('The username and password do not match. Do not use your full email.'); 
     return true; 
     } 

     <?php 
      echo "checkError();"; 
     ?> 
    </script> 
</head> 

<body> 

     <?php include('header.php'); ?> 

    <div id="mainContent"> 
     <h1>Member Login</h1> 
     <div id="mainParaText"> 
     <?php echo '<script> checkError();</script>' ?> 
    </div> 

</body> 
</html> 
Смежные вопросы