Comunidad de diseño web y desarrollo en internet online

Cargar valor de base de datos en input

Citar            
MensajeEscrito el 20 May 2013 09:15 am
Buenas otra vez, después de la inestimable ayuda de DriverOP para solucionar el problema de los autocomplete, me encuentro con uno nuevo. No es ningún error, sino que vengo a buscar ideas.

Tengo un botón:

Código HTML :

<input type="button" value="Autocargar" id="autoCargar">


Un campo de texto

Código HTML :

<input type="text" name="dirtar[1]" id="dirtar[1]" />


Y pretendo que al pulsar el botón se cargue en el campo de texto la dirección de un cliente. Este cliente ha sido escrito en un campo de texto anterior

Código HTML :

<input type="text" name="empresatar[1]" id="empresatar[1]" class="autocompleteContactos" />


Sí, es el famoso campo de texto con autocomplete.

De manera que, si escribimos, por ejemplo, "Juan S.L.", al pulsar el botón quisiera que en el text input dirtar[1] se rellenara con su dirección.

Tendré un problema para saber en qué fila me encuentro, pero eso lo veré más adelante, de momento solo se aplica a esos campos, y lo único que he conseguido hasta el momento es hacer esta función:

Código HTML :

   $("#autoCargar").click(function(){
      var empresaValue = document.getElementById("empresatar[1]").value;
      document.getElementById('dirtar[1]').value = empresaValue;
   })


De esta manera cuando pulso el botón el campo dirtar[1] se me rellena con el contenido de empresatar[1], es decir, "Juan S.L."

Mi intención sería usar php, conectar con la base de datos, filtrar la dirección según el campo de nombre, y mostrarlo en el campo, pero no me parece buena idea meter php en una función Javascript una vez ya cargado el documento, aunque quizá sea lo necesario.

Gracias!

Por superx335

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 May 2013 12:17 pm
JavaScript y PHP son cosas independientes. Para hacer lo que quieres, necesitarás implementar Ajax.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 20 May 2013 03:17 pm
Suponiendo que ya tienes solucionada la parte del php y la consulta a la base de datos en un archivo que se llama por ejemplo 'consulta-a-la-base-de-datos.php' y en este archivo tomas el nombre del cliente por POST y con este haces la consulta y devuelves la dirección del cliente.

primero que todo debes meter todos tus input dentro de un formulario en el html.

después lo que tienes que hacer con javascript es lo siguiente:

Código Javascript :

$('#form').on('submit', function(e){
   $.ajax({
     type: "POST",
     url: consulta-a-la-base-de-datos.php,
     data: $(this).serialize(),
     success: function(data){
          $('#dirtar[1]').val(data);
      }
   });
 e.preventDefault();
});

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

chrome
Citar            
MensajeEscrito el 21 May 2013 07:17 am
Uff, un poco de lío, a ver...

Tengo un fichero php que realiza la conexión a la base de datos y a partir de ahí utilizo la variable $conexion para hacer los query's y demás. No sé si te refieres a ese archivo o a crear uno nuevo que tenga la conexión a la base de datos y y formulario que envíe mediante POST (o algún procedimiento que use POST) para devolver la dirección de cliente.

¿Devolvería por POST, al igual que yo envío la consulta por POST?.

Los inputs, es decir, donde introduzco el nombre (con autocomplete), la empresa, dirección, etc. son campos de texto todos dentro de un formulario muy grande (de hecho cada vez que se añade una fila mediante AJAX, se amplía) que luego envío mediante POST a un documento que valida todos los campos.

Muchas gracias!

Por superx335

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 May 2013 04:12 pm
puede ser ese mismo o puede ser otro, yo lo que acostumbro es a dejar la conexión a la bd en un archivo único creando una clase, luego lo incluyo en los archivos en los que necesite esa conexión y hago una instancia a esa clase, pero eso es irrelevante en este caso, lo importante es que el archivo que uses acá tenga acceso a la bd y que reciba el nombre del cliente por post

Código PHP :

$nombre_cliente = $_POST['aca va el atributo name del input con el nombre del cliente'];


después haces la consulta:

Código PHP :

function obtenerDireccion($nombre_cliente)
    {
          if ($this->con->conectar() == true) { // así trabajo yo la conexión
            return mysql_fetch_array(mysql_query("SELECT direccion FROM Clientes WHERE nombre=" . $nombre_cliente));
        }
    }


y por último devuelves el valor con un simple echo

Código PHP :

echo obtenerDireccion($nombre_cliente);


todo esto es solo para que te hagas una idea, no esperes que funcione al copiar y pegar.

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

chrome
Citar            
MensajeEscrito el 22 May 2013 08:30 am
Hola de nuevo,

bueno pues he pasado un rato mirando bien el código y creo entender todo, salvo un detalle que ahora te comento, y supongo que por eso no me funciona.

He creado el documento PHP tal que así:

Código PHP :

<?php

include_once(".ht_conexion.php");

$nombreCliente = $_POST['empresatar[1]'];


function obtenerDireccion($nombreCliente)
{
   $queryDir = "SELECT dircon FROM contactos WHERE nomemp=" . $nombreCliente;
   $resultDir = mysql_query($queryDir, $conexion) or die(mysql_error());
   $rowDir = mysql_fetch_array($resultDir);
   
   return $rowDir['dircon'];
}

echo obtenerDireccion($nombreCliente);

?>


En .ht_conexion.php realizo la conexion a la base de datos y utilizo la variable $conexion a partir de ahí.

Hago la consulta diferente que tú, pero creo que debe estar correcta, hago el query, obtengo el manejador de la fila, y devuelvo el contenido del campo "dircon" que es la dirección del cliente $nombreCliente que he recibido por POST.

Luego, en el documento en que quiero que ocurra todo, tengo:

Código Javascript :

<script type="text/javascript">
$('#formTareas').on('submit', function(e)[{
   $.ajax({
   type: "POST",
   url:"getContactosInfo.php",
   data: $(this).serialize(),
   success: function(data){
      $('#dirtar[1]').val(data);
   }
   });
   e.preventDefault();
});
</script>


Entiendo que mediante el método POST, mando a "getContactosInfo.php" (que es donde tengo el código anterior) los datos del propio formulario "formTareas" (por eso el $(this)) y una vez realizado recibo el "echo", que a su vez lo meto en la función para introducirlo como valor a "dirtar[1]", que es el campo de dirección.

Bueno pues tengo un par de dudas, por un lado sobre esto mismo. Yo para recibir datos de un input hago, por ejemplo:

Código Javascript :

var empresaValue = document.getElementById("empresatar[1]").value;


Y para introducirlo

Código Javascript :

document.getElementById('dirtar[1]').value = empresaValue;


El método ".val" supongo que será de Jquery o algo así, no?. Solo por asegurarme de que no es eso lo que falla.

Y la duda principal que tengo es que hecho de tener que hacer un submit del formulario, quiero decir, en teoría el formulario que estoy modificando solo tendría que usar submit cuando ya están todas las tareas introducidas y finalmente pulso en "Guardar", pero antes de eso habré necesitado que al pulsar algún otro botón, o de manera automática, se complete el campo de dirección según el nombre de contacto introducido, ¿me entiendes?.

Te agradezco muchísimo este tiempo, la verdad es que me sorprende lo colaborativos que sois por aquí. Esta vez sí, si logro esto ya podré dejar este documento y dedicarme a darle formato css al asunto.

Gracias!

Por superx335

13 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.