2017-05-07 49 views
0

我試圖從php通過messageajax但不工作,況且我想,如果一個字段爲空秀像「輸入用戶名」 ..PHP AJAX傳球成功味精

這裏是我的了:

user.php的

<!-- conexion_user.php --> 
<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "usuarios"; 

$nombre = $_REQUEST['nombre']; 
$email = $_REQUEST['email']; 
$mensaje = $_REQUEST['mensaje']; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "INSERT INTO `usuarios`.`usuarios` (`nombre`, `email`, `mensaje`) VALUES ('$nombre', '$email', '$mensaje')"; 


     if (($_POST['nombre']!="") 
      &&($_POST['email']!="") 
      &&($_POST['mensaje']!="")) { 
      $conn->query($sql) === TRUE; 
      echo "Se ha guardado en la BD."; 

      $data = Array(
       'success' => true, 
       'message' => 'Well done!', 
       'data' => Array(
         'nombre' => $_POST['nombre'].'1', 
         'email' => $_POST['email'].'1', 
         'mensaje' => $_POST['mensaje'].'1', 
        ) 
       ); 

      echo json_encode($data); 
     } 

     else{ 
      $res = Array(
       'success' => false, 
       'message' => 'Error', 
       ); 

      echo json_encode($res); 
     } 


$conn->close(); 
?> 

ajax.js

$(document).ready(function(){ 
    $('#formulario').validate({ 
     rules:{ 
      nombre:{ 
       required:false, 
       minlength:2 
      }, 
     }, 
     messages:{ 
      nombre:{ 
       minlength: 'Introduzca mas de {0} caracteres' 
      } 
     }, 
     submitHandler:function(){ 
     var datos = { 
      nombre: $('#nombre').val(), 
      email: $('#email').val(), 
      mensaje: $('#mensaje').val() 
     } 
     $('#exito').show(); 
     $.ajax({ 
      url: '../php/conexion_user.php', 
      type: 'POST', 
      data: datos, 
      dataType: 'json', 
      success:function(data){ 
       console.log(data); 
       $('#dos').html('<p>' + data.message + '</p>'); 
       $('#exito').html('Inserción a usuario.').addClass('alert-success'); 
       $('#exito').fadeOut(3500); 
      }, 
         error: function(jqXHR,estado,error){ 
          console.log(jqXHR); 
          console.log(estado); 
          console.log(error); 
         } 
     }); 

    } 
    }); 
}); 

HTML

<div align="center" > 
<form id="formulario" method="post" class="form-horizontal"> 
      <div class="form-group"> 
       <legend>Usuario</legend> 
      </div> 
      <center> 

      <input type="text" name="nombre" id="nombre" class="form-control" value="" placeholder="Nombre"> 
      <br> 
      <input type="text" placeholder="Email" id="email" name="email" class="form-control"> 
      <br> 
      <input type="text" name="mensaje" id="mensaje" class="form-control" value="" placeholder="Ingrese Mensaje"> 
      <button type="submit" id="insert" name="insert" class="btn btn-primary">Submit</button> 
    </form> 
    <p id="dos"></p> 
    </div> 

我插入到數據庫是否正常工作,如果我打提交將成功插入到我的數據庫,但它顯示:

對象對象

,而不是消息。

+0

使用'的console.log(data.message);',並告訴我們你得到了什麼?它看起來像你試圖打印一個數組或某種複合對象 –

+0

把'exit;'放在'json_encode'後面,並把'header('Content-Type:application/json');'放在php文件的頂部 – Noman

+0

@PraveenKumar我什麼都看不到,沒有任何反應......它使插入,但我可以通過控制檯看不到任何東西。 – User100696

回答

-1

1)您需要將響應標頭設置爲json。詳情請參考Returning JSON from a PHP Script

2)你編碼數組不是對象。

$.ajax({ 
      url: '../php/conexion_user.php', 
      type: 'POST', 
      data: datos, 
      dataType: 'json', 
      success:function(data){ 
       console.log(data['success']); // check this 
       console.log(data['message ']); // check this 
       $('#dos').html('<p>' + data.message + '</p>'); 
       $('#exito').html('Inserción a usuario.').addClass('alert-success'); 
       $('#exito').fadeOut(3500); 
      }, 
         error: function(jqXHR,estado,error){ 
          console.log(jqXHR); 
          console.log(estado); 
          console.log(error); 
         } 
     }); 

,如果你想,而不是返回數組的對象,然後是指AJAX Function live preview from drop down list

0

嘗試使用JSON.parse()

var parsedData = JSON.parse(data);