У меня есть простая страница входа в HTML5, которая запрашивает имя пользователя и пароль. Информация передается через POST на PHP для сравнения с данными в MySQL. Я пытаюсь повторить простую «ДА», если данные были успешно проверены и «НЕТ» в противном случае. Я хочу взять текстовое значение ответа и манипулировать им с помощью Javascript. Кажется, что все работает нормально, но когда переменная $ response встречается эхо, она показана сама по себе на пустой HTML-документе, и JavaScript никогда не выполняется. Ниже приводится код, я использую:Ошибка передачи переменных между PHP и Javascript
<ul>
<li>
<form action="login_submit.php" id="loginTest" method="post">
<span class="un"><i class="fa fa-user"></i></span><input type="text" id="maindata_email" name="maindata_email" value="" maxlength="40" required class="text" placeholder="Usuario"/></li>
<li>
<span class="un"><i class="fa fa-lock"></i></span><input type="password" id="maindata_password" name="maindata_password" value="" maxlength="10" required class="text" placeholder="Password"/></li>
<li>
<input type="hidden" name="form_token" value="<?php echo $form_token; ?>">
<div class="up">
<input type="submit" id ='ingresar' value="ingresar" class="btn">
<!--window.alert(5 + 6);-->
</form>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script language="javascript">
var myData = <?php echo json_encode($response); ?>;
window.alert(myData);
if (myData == "YES") {
alert("Usuario aceptado!");
var href = 'http://index2.html';
window.location=href;
} else {
alert("Usuario invalido!");
var href = 'http://index.html';
window.location=href;
}
</script>
<input type="submit" id = 'editar' value="editar" class="btn">
</form>
</div>
</li>
</ul>
А вот раздел PHP:
/*** bind the parameters ***/
$stmt->bindParam(':maindata_email', $maindata_email, PDO::PARAM_STR);
$stmt->bindParam(':maindata_password', $maindata_password, PDO::PARAM_STR, 40);
/*** execute the prepared statement ***/
$stmt->execute();
/*** check for a result ***/
$user_id = $stmt->fetchColumn();
/*** if we have no result then fail boat ***/
if ($user_id == false)
{
echo $response = "NO";
}
/*** if we do have a result, all is well ***/
else
{
/*** set the session user_id variable ***/
$_SESSION['user_id'] = $user_id;
/*** tell the user we are logged in ***/
echo $response = "YES";
}
}
catch(Exception $e)
{
/*** if we are here, something has gone wrong with the database ***/
$message = 'No se puede procesar su ingreso. Favor de intentar mas tarde.'."<br />\r\n";
}
}
После нажатия на ingresar в HTML имя пользователя и пароль правильно отправленный и полученный РНР информация обрабатывается и сравнивается со значениями, содержащимися в базе данных MySQL, и я получаю правильный ответ при проверке. Может ли кто-нибудь объяснить, почему я получаю пустую страницу с ответом $, и код JavaScript никогда не выполняется ??? Thanx
Что говорит ваш журнал ошибок? Ошибка 500 как код состояния? –
у вас есть 1x '
' теги, а также некоторый недостающий код для вашего PHP. –Вам нужно использовать AJAX, чтобы делать то, что вы хотите, для этого есть множество руководств, особенно с помощью jquery. – Steve