Tengo mi documento 1.
Código
$("#codigo").blur(function(){ $.ajax({ beforeSend: function(){ $('#status').html("Revisando..."); }, url: 'check.producto.php', type: 'post', data: $('#formid').serialize(), success: function(resp){ alert(resp); if(resp == "Existe"){ $("#codigo").attr("class", "form-control error"); $("#codigo").attr("style", "border-color: red;"); $("#status").html("<span class='form-error help-block'>Este codigo ya existe.</span>"); console.log(resp); }else{ $("#codigo").attr('class', 'form-control valid'); $("#status").html("<span class='form-valid help-block'>Codigo nuevo.</span>"); console.log(resp); } console.log(resp); }, error: function(jqXHR, estado, error){ console.log(estado) console.log(error) }, complete: function(jqXHR, estado){ console.log(estado) }, timeout: 10000 }); });
Acá tengo el formulario
Código
El caso es que tengo un formulario de varios campos, una vez que se pierde el focus sobre el campo código se hace una verificación mediante ajax, de que el dato ingresado existe o no, con el siguiente código.
check.producto.php
Código
<?php require("../../system/config/database.php"); require("../../system/database/DBMySQLi.php"); $db = new DB(); $codigo = $_POST['codigo']; $sql = "SELECT codigo FROM producto WHERE codigo = '$codigo'"; $res = $db->execute($sql); if($res->num_rows>0){ echo "Existe"; }else{ echo "No existe"; } exit; ?>
Entonces el código PHP verifica en la base de datos si el código existe o no y retorna un impreso de existe o no existe.
El problema se origina cuando entra al bucle de jquery del success:
Código
success: function(resp){ alert(resp); if(resp == "Existe"){ $("#codigo").attr("class", "form-control error"); $("#codigo").attr("style", "border-color: red;"); $("#status").html("<span class='form-error help-block'>Este codigo ya existe.</span>"); console.log(resp); }else{ $("#codigo").attr('class', 'form-control valid'); $("#status").html("<span class='form-valid help-block'>Codigo nuevo.</span>"); console.log(resp); } console.log(resp); }
El alert(resp); me demuestra que el valor retornado es "Existe".
Pero en el if(resp == "Existe"){ no entra al bucle.
Accede directamente al else, y en el console.log(resp); imprime "Existe".
No comprendo porque no accede por el If.
Alguna sugerencia?