我正试图通过一个输入来绑定其他输入,之前我做了一个例子,我在互联网上看到了解和练习,我做的例子很好,它填写了我问的所有数据,但当我尝试实现到我的项目这没有什么作用,在控制台中,不要给我一个错误或什么可以告诉我发生了什么 我正在使用PHP 7和Admin LTE的模板
这是我的表格
<form name="formulario" id="formulario" method="POST">
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<input type="hidden" name="idventa" id="idventa">
<label>Numero de viaje:</label>
<input type="text" class="form-control" name="num_viaje" id="num_viaje" maxlength="256" placeholder="Número de viaje" required>
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Cliente:</label>
<input type="text" class="form-control" name="nombre" id="nombre" maxlength="256" placeholder="Cliente">
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Destino:</label>
<input type="text" class="form-control" name="destino" id="destino" maxlength="256" placeholder="Destino">
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Operador:</label>
<input type="text" class="form-control" name="operador" id="operador" maxlength="256" placeholder="Operador" required>
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Número de operador:</label>
<input type="text" class="form-control" name="idoperador" id="idoperador" maxlength="256" placeholder="Numero de operador" required>
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Tipo de operación:</label>
<input type="text" class="form-control" name="tipoOperacion" id="tipoOperacion" maxlength="256" placeholder="Tipo de operación" required>
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Viatico:</label>
<input readonly type="text" class="form-control" name="viatico" id="viatico" maxlength="256" placeholder="Viatico" required onchange="sumar(this.value);">
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Caseta:</label>
<input readonly type="text" class="form-control" name="casetas" id="casetas" maxlength="256" placeholder="Casetas" required onchange="sumar(this.value);">
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Extras:</label>
<input readonly type="text" class="form-control" name="extras" id="extras" maxlength="256" placeholder="Extras" required onchange="sumar(this.value);">
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Cantidad en Diesel:</label>
<input readonly type="text" class="form-control" name="diesel" id="diesel" maxlength="256" placeholder="Diesel" required onchange="sumar(this.value);">
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Desgaste 5%:</label>
<input readonly type="text" class="form-control" name="desgaste" id="desgaste" maxlength="256" placeholder="Desgaste 5%" onchange="sumar(this.value);">
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Utilidad:</label>
<input readonly type="text" class="form-control" name="utilidad" id="utilidad" maxlength="256" placeholder="Utilidad" onchange="sumar(this.value);">
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Inversión total:</label>
<span id="spTotal"></span>
<input readonly type="text" class="form-control" name="total" id="total" maxlength="256" placeholder="Total">
</div>
<div id="estado">Esperando input.</div>
<div class="form-group col-lg-12 col-md-12 col-sm-12 col-xs-12">
<button class="btn btn-primary" type="submit" id="btnGuardar"><i class="fa fa-save"></i> Guardar</button>
<button class="btn btn-danger" onclick="cancelarform()" type="button"><i class="fa fa-arrow-circle-left"></i> Cancelar</button>
</div>
</form>
我分开的页脚,我把
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script type="text/javascript" src="scripts/relleno.js"></script>
relleno.php就是这些
$(function(){
/* Ponemos evento blur a la escucha sobre id nombre en id cliente. */
$('#cliente').on('blur','#nombre',function(){
/* Obtenemos el valor del campo */
var valor = this.value;
/* Si la longitud del valor es mayor a 2 caracteres.. */
if(valor.length>=3){
/* Cambiamos el estado.. */
$('#estado').html('Cargando datos de servidor...');
/* Hacemos la consulta ajax */
var consulta = $.ajax({
type:'POST',
url:'cliente.php',
data:{nombre:valor},
dataType:'JSON'
});
/* En caso de que se haya retornado bien.. */
consulta.done(function(data){
if(data.error!==undefined){
$('#estado').html('Ha ocurrido un error: '+data.error);
return false;
} else {
if(data.destino!==undefined){$('#nombre #destino').val(data.destino);}
if(data.viatico!==undefined){$('#nombre #viatico').val(data.viatico);}
if(data.casetas!==undefined){$('#nombre #casetas').val(data.casetas);}
if(data.extras!==undefined){$('#nombre #extras').val(data.extras);}
if(data.diesel!==undefined){$('#nombre #diesel').val(data.diesel);}
if(data.desgaste!==undefined){$('#nombre #desgaste').val(data.desgaste);}
if(data.utilidad!==undefined){$('#nombre #utilidad').val(data.utilidad);}
if(data.total!==undefined){$('#nombre #total').val(data.total);}
$('#estado').html('Datos cargados..');
return true;
}
});
/* Si la consulta ha fallado.. */
consulta.fail(function(){
$('#estado').html('Ha habido un error contactando el servidor.');
return false;
});
} else {
/* Mostrar error */
$('#estado').html('El nombre tener una longitud mayor a 2 caracteres...');
return false;
}
});
});
以及我在哪里搜索数据库的是这些cliente.php
<?php
/* Conectar a una base de datos de MySQL invocando al controlador */
$dsn = 'mysql:dbname=dbsistema;host=localhost';
$usuario = 'root';
$contraseña = '';
try {
$gbd = new PDO($dsn, $usuario, $contraseña);
} catch (PDOException $e) {
echo 'Falló la conexión: ' . $e->getMessage();
}
if(!empty($_POST['nombre'])){
$nombre = $_POST['nombre'];
$sql = "SELECT * FROM clientes WHERE nombre = '$nombre'";
$stmt = $gbd->prepare($sql);
$stmt ->execute();
$arrDatos = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($arrDatos);
if($arrDatos){
foreach ($arrDatos as $row) {
if ($nombre = $row['nombre']) {
$return = array ('destino'=>$row['destino'],'viatico'=>$row['viatico'],'casetas'=>$row['casetas'],'extras'=>$row['extras'],'diesel'=>$row['diesel'], 'desgaste'=>$row['desgaste'],'utilidad'=>$row['utilidad'],'total'=>$row['total']);
}
}
} else {
$return = array('error'=>'El nombre no esta guardado en la base de datos');
}
die(json_encode($return));
}
希望有人能帮助我找到我的错误
答案 0 :(得分:0)
你的问题出现在$ .ajax功能上。作为数据,你给json语句提供了你没有定义的变量(或者我没有看到它)
data:{nombre:valor},
另一方面,您定义了dataType:json,但dataType json不是提交数据的类型,它是从此ajax调用返回的数据定义。也许,但我不确定atm,你应该对数据进行字符串化(JSON.strinfiy(yourJSONObject)),因为在数据上,你无法传递直接的JSON对象。即使您在使用$ _POST访问它之后也是如此。然后数据必须以&amp; field = value&amp; field = value&amp; field = value ....的形式传递。