私の問題は、php でしか機能しないログイン パネルがあることです。読み込みアイコンを表示するために行ったいくつかの変更とページの更新により、Ajax を実装する必要がありました。
何らかの理由で、送信ボタンをクリックすると読み込みアイコンが表示され、リクエストが正しく開始されますが、「未定義のインデックス」というエラーが表示されると、私の問題が始まります。
まず、これはログイン ページの HTML コードの一部です。
<form id="formlogin"name="form1">
<table id="tabla_usuario">
<tr>
<td>Usuario</td>
<td><input id="inputlogin" type="text" size="18" name="user" style="line-height:5px;height:20px;"></td>
</tr>
<tr>
<td>Contraseña</td>
<td><input id="inputlogin" type="password" size="18" name="pass" style="line-height:5px;height:20px;"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="boton" value="Login" id="botonlogin"/></td>
</tr>
</table>
</form>
PHPログインコードは次のとおりです。
<?php
if($conexion->connect_errno > 0){
die('Unable to connect to database [' . $conexion->connect_error . ']');
}
// username and password sent from form
$minombreusuario= $_POST['user'];
$micontrasena= $_POST['pass'];
//consulta//
$sql = $conexion->prepare("SELECT * FROM $tbl_name WHERE Usuario= ? and password= ?");
if (!$sql) {
print ("Error en prepare: " . $conexion->error . "n");
exit;
}
if (!$sql->bind_param("ss",$minombreusuario,$micontrasena)) {
print("Error en bind_param: " . $sql->error . "n");
exit;
}
if (!$sql->execute()) {
echo "Falló la ejecución: (" . $sql->errno . ") " . $sql->error;
}
$sql->store_result();
if ($sql->num_rows==1) {
//Inicio session//
$_SESSION['usuari'] = $_POST['user'];
}
else {
echo "Wrong Username or Password";
}
?>
そして、これは ajax js です。
$(document).ready(function(){
$('#botonlogin').on('click',function(e){
e.preventDefault();
var datos = $('#formlogin').serialize();
$.ajax({
url:'checklogin.php',
data: datos,
type: 'POST',
success: function() {
window.location.reload(true);
}
});
});
});
最後に、ロード用のスクリプトを表示します:
<script type="text/javascript">
$(document).ready(function() {
$("#contenedor_carga").on("ajaxStart", function(){
$(this).show();
}).on("ajaxStop", function(){
$(this).hide();
});
});
どこが間違っているのかわからず、大量のコードについてお詫び申し上げます。問題の解決にご協力いただければ幸いです。