2013-07-05 2 views
0

Не знаете, почему, но я добавил предложение «ошибка», чтобы убедиться, что AJAX не работает ... это так. Он работает правильно до части AJAX, он просто не отправляет данные, не знаю, почему.Ошибка AJAX/JQuery при попытке отправить данные

<script type="text/javascript"> 
<!-- 
$(document).ready(function() { 

$("#login").click(function() { 

    document.getElementById("result").innerHTML = 'Validating credentials...'; 

    var un = $("#un").val(); 
    var pw = $("#pw").val(); 

    if (un == "") 
    { 
     document.getElementById("un_error").style.visibility = 'visible'; 
     $("#un").focus(); 
    } 

    if (pw == "") 
    { 
     document.getElementById("pw_error").style.visibility = 'visible'; 
     $("#pw").focus(); 
    } 

    $.ajax({ 
     type: 'POST', 
     url: 'login-parse.php', 
     data: { un: un, pw: md5(pw) }, 
     success: function(msg) { 
       document.getElementById("result").innerHTML = msg; 
        }, 
     error: function(xhr, status) { alert(status); } 
    }); 

}); 

}); 
//--> 
</script> 

Это код JS.

Это HTML:

<div id="content"> 
    <div id="result" class="result"></div> 
    <h2>Login To Your Account</h2> 
    <div class="text"> 
     <fieldset> 
      <fieldset> 
       <legend>Username</legend> 
       <input type="text" id="un" value="" size="20" /><span class="error" id="un_error">*</span> 
      </fieldset> 
      <fieldset> 
       <legend>Password</legend> 
       <input type="password" id="pw" value="" size="30" /> <span class="error" id="pw_error">*</span> 
      </fieldset> 
      <input type="button" id="login" value="Login" /> 
     </fieldset> 
    </div> 
</div> 

<?php 

// Login Parser 

require 'inc.common.php'; 

if (! isset ($_POST['un'], $_POST['pw'])) 
{ 
    echo '<blockquote>Invalid username/password combination.</blockquote>' . "\n"; 
} else { 
    $un = $_POST['un']; 
    $pw = md5($_POST['pw']); 

    $check = $sql->result ($sql->query ('SELECT COUNT(*) FROM `users` WHERE `user_name` = \'' . $sql->escape($un) . '\' AND `user_password` = \'' . $sql->escape($pw) . '\'')); 

    $errors = array(); 

    if (! strlen ($un)) 
     $errors[] = 'Please enter a valid username.'; 

    if (! strlen ($pw)) 
     $errors[] = 'Please enter a valid password.'; 

    if ($check == 0) 
     $errors[] = 'Invalid username/password combination.'; 

    if (count ($errors) > 0) 
    { 
     echo '<blockquote>' . "\n", 
      ' The following errors occurred with your login:' . "\n", 
      ' <ul>' . "\n"; 
     foreach ($errors as $enum => $error) 
     { 
      echo '  <li><strong>(#' . ($enum+1) . '):</strong> ' . $error . '</li>' . "\n"; 
     } 
     echo ' </ul>' . "\n", 
      '</blockquote>' . "\n"; 
    } else { 
     setcookie ('ajax_un', $un, time()+60*3600); 
     setcookie ('ajax_pw', $pw, time()+60*3600); 

     echo '<blockquote>' . "\n", 
      ' <p><strong>Success!</strong></p>' . "\n", 
      ' <p>You have successfully been logged in as <strong>' . $un . '</strong>.</p>' . "\n", 
      ' <p>You may now return to the <a href="index.php">index page</a>.</p>' . "\n", 
      '</blockquote>' . "\n"; 

    } 

} 

?> 
+0

И да, вызывается jquery, а также файл функций js, содержащий функцию md5. Файл «login-parse.php» также находится в том же каталоге, что и файл входа. – user2555004

+0

любые ошибки в консоли? –

+0

никаких ошибок в консоли, поэтому я не понимаю, почему он не работает. – user2555004

ответ

0

Из сообщения «500 - Внутренняя ошибка сервера» в Firebug консоли, а код, который вы выложили, кажется, что есть некоторые проблемы в работе с базой данных.

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

Если возможно, также опубликуйте результат.

+0

Ошибка операции с базой данных не даст ошибки 500. –

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