2017-07-28 132 views
0

我想通過一個輸入綁定其他輸入,之前我做了一個例子,我在互聯網上看到了解和實踐,我做的例子很好,它填滿了所有的數據,我問,但是當我嘗試實現到我的項目這不會做任何事情,在控制檯中,不要告訴我一個錯誤或東西,可以告訴我發生了什麼 我使用PHP 7和模板聯繫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; 
     } 
    }); 
}); 

若i使搜索到的數據基礎是這些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)); 
} 

希望有人能helpme找到我的錯誤

回答

0

你的問題是我在$ .ajax函數中的視圖。隨着數據你給一個JSON語句變量,你犯規定義(或我沒有看到它)

data:{nombre:valor},

在另一方面,你定義數據類型:JSON,但的dataType JSON是不是在提交的數據的類型,它的數據定義,從這個ajax調用返回。也許,但我不知道atm,你應該串聯數據(JSON.strinfiy(yourJSONObject)),因爲在數據上,你不能傳遞直接的JSON對象。即使你使用$ _POST來訪問它。然後數據必須以& field = value & field = value & field = value的形式傳遞。