Undefined index: action when sending data from ajax to PHP

0

I'm having trouble sending my ajax parameters to PHP, giving me the error Undefined index: action in my logar.php file

My ajax takes the user and password of the form in html and sends it to the file logar.php, in this file I instantiate the querysDB class and call the function logar and pass the parameters to it, and then send the variable $ ok for my ajax.

Logar.php file

 <?php
 include_once("querysDB.php");
 include_once("bancoDB.php");

 $querys=new querys();
 $acao=$_POST['acao'];

switch ($acao) {
case 'logando':
$usuario= $_POST['usuario'];
$senha= $_POST['senha'];
if(!empty($usuario) && $usuario!='' && !empty($senha) && $usuario!=''){
  echo json_encode($querys->logar($conexcao,$usuario,$senha));
}else{

}
break;

default:
break;
   }
?>

file login.js

var log = {

init: function(){

},

entrar: function() {
   $.ajax({
     type: "POST",
     url: "logar.php",

     data:{
       acao:'logando',
       usuario: $("#usuario").val(),
       senha:   $("#senha").val()
     },

     dataType: "json",

     success: function(json){
       if(json.result== true){
          alert(json.ok);
       }
     },
     error: function(){
       alert("Erro ao enviar dados");
     }
   });

  }
}

File querysDB.php

class querys{

function logar($conexcao,$usuario,$senha){
try {
       $query=mysqli_query($conexcao,"SELECT Nome,Senha FROM usuarios");
       $dados=$query;
       $arrayResultado=array();

while($resultado=mysqli_fetch_array($dados)){

     $arrayResultado['nome']=$resultado['Nome'];
     $arrayResultado['Senha']=$resultado['Senha'];

}
 $ok='';
 for($i=0; $i<sizeof($arrayResultado); $i++){

    if($arrayResultado[$i]==$usuario && $arrayResultado[$i]==$senha){

       $ok=true;
    }else{

      $ok=false;
    }
  }
  $dadosjson['result']=true;

  $dadosjson['ok']=$ok;

  return $dadosjson;

   } catch (Exception $e) {
        echo $e;

   }
  }
}
    
asked by anonymous 06.02.2017 / 01:36

2 answers

0

Do two tests, the first:

data:{
   acao: "logando", // nota que eu mudei para aspas duplas
   usuario: $("#usuario").val(),
   senha:   $("#senha").val()
 }

And the second:

data:{
   "acao": "logando", // quando uso JSON, sempre aspas duplas
   "usuario": $("#usuario").val(),
   "senha":   $("#senha").val()
 }
    
06.02.2017 / 12:23
0

The error undefined index is clear. The "action" index is not defined.

Make sure the variable $ _POST ['action'] was actually passed to ajax.

    
06.02.2017 / 12:23