Foros del Web » Programando para Internet » Javascript »

Almacenar datos de javascript en BD

Estas en el tema de Almacenar datos de javascript en BD en el foro de Javascript en Foros del Web. Hola! tengo un script que crea una tabla al momento de presionar un botón con un total de filas que asignemos nosotros mediante un campo ...
  #1 (permalink)  
Antiguo 14/04/2015, 12:33
 
Fecha de Ingreso: abril-2015
Mensajes: 4
Antigüedad: 9 años
Puntos: 0
Almacenar datos de javascript en BD

Hola! tengo un script que crea una tabla al momento de presionar un botón con un total de filas que asignemos nosotros mediante un campo de texto, el problema es que no tengo idea de como almacenar la información de todos los input que se crean también junto con las filas.

No de Partidas. <input name="" type="text" id="numero" value="" size="3">
<input name="" type="button" onClick="myFunction()" value="Generar">

<script>
function myFunction() {
var numero = document.getElementById("numero").value;
//creacion de la tabla
var tblDatos = document.createElement('table');
tblDatos.cellPadding='1';
tblDatos.cellspacing='1';
tblDatos.width='80%';
tblDatos.border='1';
tblDatos.bgcolor='#666666';

//creacion del cuerpo de la tabla
var bdyDatos = document.createElement('tbody');

//creacion de los encabezados de la columnas

var trCabeza = document.createElement('tr');
var thnumero = document.createElement('th');
thnumero.innerHTML = 'No. de Partida';
var clasificacion = document.createElement('th');
clasificacion.innerHTML = 'Clasificacion';
var vinculacion = document.createElement('th');
vinculacion.innerHTML = 'Vinculacion';
var unidadmedida = document.createElement('th');
unidadmedida.innerHTML = 'Unidad de medida';
var cantpzas = document.createElement('th');
cantpzas.innerHTML = 'Cant. Pzas de Factura';
var cantpzastarifa = document.createElement('th');
cantpzastarifa.innerHTML = 'Cant. Pzas de tarifa y unidad de medida';
var paisorigen = document.createElement('th');
paisorigen.innerHTML = 'Pais de origen';
var permisos = document.createElement('th');
permisos.innerHTML = 'Permisos';
var anexo = document.createElement('th');
anexo.innerHTML = 'Anexo de partida';

//Insertar elementos a la fila

trCabeza.appendChild(thnumero);
trCabeza.appendChild(clasificacion);
trCabeza.appendChild(vinculacion);
trCabeza.appendChild(unidadmedida);
trCabeza.appendChild(cantpzas);
trCabeza.appendChild(cantpzastarifa);
trCabeza.appendChild(paisorigen);
trCabeza.appendChild(anexo);
//intsetar fila al cuerpo de tabla

bdyDatos.appendChild(trCabeza);

//Crear Fila
for(var linea = 1; linea <= numero; linea++) {

var trDatos = document.createElement('tr');
trDatos.align = 'center';
var td1 = document.createElement('td');
td1.innerHTML = '<input name="no_partida" type="text" />';
var td2 = document.createElement('td');
td2.innerHTML = '<input name="partida[]" type="checkbox" value="Clasificacion" />';
var td3 = document.createElement('td');
td3.innerHTML = '<input name="partida[]" type="checkbox" value="Vinculacion" />';
var td4 = document.createElement('td');
td4.innerHTML = '<input name="partida[]" type="checkbox" value="Unidad de Medida" />';
var td5 = document.createElement('td');
td5.innerHTML = '<input name="partida[]" type="checkbox" value="Cantidad de Piezas" />';
var td6 = document.createElement('td');
td6.innerHTML = '<input name="partida[]" type="checkbox" value="Cantidad de Piezas Tarifa" />';
var td7 = document.createElement('td');
td7.innerHTML = '<input name="partida[]" type="checkbox" value="Pais Oriden" />';
var td8 = document.createElement('td');
td8.innerHTML = '<input name="partida[]" type="checkbox" value="Anexo" />';


//instertar celdas a la fila
trDatos.appendChild(td1);
trDatos.appendChild(td2);
trDatos.appendChild(td3);
trDatos.appendChild(td4);
trDatos.appendChild(td5);
trDatos.appendChild(td6);
trDatos.appendChild(td7);
trDatos.appendChild(td8);

//intsetar fila al cuerpo de tabla

bdyDatos.appendChild(trDatos);
}
//instertar el cuerpo a la tabla

tblDatos.appendChild(bdyDatos);

//Agregar tabla al documento

document.body.appendChild(tblDatos);

}
</script>

Si alguien me pudiera sacar de esta duda se lo agradecería mucho!

Gracias.

Última edición por JAF93; 14/04/2015 a las 14:57
  #2 (permalink)  
Antiguo 14/04/2015, 17:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Almacenar datos de javascript en BD

Hola:

Supongo que la base de datos estará en el servidor, así que esos elementos creados al vuelo deberían estar en un formulario y luego enviar ese formulario... (con su método, action, etc.)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 15/04/2015, 10:04
 
Fecha de Ingreso: abril-2015
Mensajes: 4
Antigüedad: 9 años
Puntos: 0
Respuesta: Almacenar datos de javascript en BD

Hola!

Perdón si no me explique bien. Tengo la base de datos en el servidor y el script dentro de un formulario, mi problema es que no tengo idea de como tomar los valores de cada input que se crea al realizar el script para después guardarlos en una tabla. Fuera del script tengo otros campos y con solo asignarles variables puedo hacer un guardado de su información,

Ejemplo:
$sql="INSERT INTO general(`numero` ,`importador` ,`documentador` ,`revisor` ,`fecha`)
VALUES ('$numero','$importador','$documentador','$reviso' ,'$fecha')";

Pero dentro del script nose como tomar los valores de los input, o como es que puedo mandar esos valores a variables en php para después guardarlos.

Espero y me entiendan saludos!
  #4 (permalink)  
Antiguo 15/04/2015, 12:54
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Almacenar datos de javascript en BD

Ya que formas arrays de cajas de texto, tendrías que recorrerlos en PHP, ir tomando sus valores e ir armando la cadena de consulta para realizar el posterior guardado en la BD.

Un ejemplo:
Código PHP:
Ver original
  1. $nombres = $_POST['nombre'];
  2. $apellidos = $_POST['apellido'];
  3. $domicilios = $_POST['domicilio'];
  4. $valores = []; //Si usas una versión de PHP anterior a la 5.4, usa array()
  5.  
  6. for ($i = 0, $l = count($nombres); $i < $l; $i++){
  7.     $valores[] = "('" . $nombres[$i] . "', '" . $apellidos[$i] . "', '" . $domicilios[$i] . "')";
  8. }
  9.  
  10. $consulta = 'INSERT INTO tabla (nombre, apellido, domicilio) VALUES ' . implode(', ', $valores);
  11. if (mysqli_query($conexion, $consulta)){
  12.     echo 'Los datos han sido guardados satisfactoriamente';
  13. }
  14. else{
  15.     echo 'No se pudieron guardar los datos';
  16. }

Lo que hago es sencillo. Tomo a los arrays, creo un cuarto array, recorro a los tres primeros arrays (que son los que contienen los valores y como todos deben de tener la misma cantidad de valores, me baso en el total de elementos de $nombres para recorrer a los tres) y, en cada iteración, añado al array $valores un grupo de valores, separados por comas y delimitado por paréntesis. Enseguida, formo la consulta SQL en la cual añado la cadena de valores unificada por comas, tomando una forma similar a esta:

Código MySQL:
Ver original
  1. INSERT INTO tabla (campo1, campo2, campo3) VALUES ('valor1', 'valor2', 'valor3'), ('valor4', 'valor5', 'valor6'), ('valor7', 'valor8', 'valor9')

De esa manera, insertarás todos los valores en registros diferentes dentro de tu tabla.

Posdata: Esto no tienen nada que ver con JavaScript.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 15/04/2015, 15:49
 
Fecha de Ingreso: abril-2015
Mensajes: 4
Antigüedad: 9 años
Puntos: 0
Respuesta: Almacenar datos de javascript en BD

Quizá no me estoy explicando bien o soy yo quien no entiende, disculpen mi ignorancia.

Este pedazo de codigo me crea una total de filas dentro de una tabla dinamica que yo asigno mediante la variable numero al ingresarlo en una caja de texto y por lo tanto me genera el total de filas que cada una contiene cajas de texto y checkbox.

Código Javascript:
Ver original
  1. //Crear Fila
  2. for(var linea = 1; linea <= numero; linea++) {
  3.  
  4. var trDatos = document.createElement('tr');
  5.     trDatos.align = 'center';
  6. var td1 = document.createElement('td');
  7.     td1.innerHTML = '<input name="no_partida[]" type="text" />';
  8. var td2 = document.createElement('td');
  9.     td2.innerHTML = '<input name="partida[]" type="checkbox" value="Clasificacion" />';
  10. var td3 = document.createElement('td');
  11.     td3.innerHTML = '<input name="partida[]" type="checkbox" value="Vinculacion" />';
  12. var td4 = document.createElement('td');
  13.     td4.innerHTML = '<input name="partida[]" type="checkbox" value="Unidad de Medida" />';
  14. var td5 = document.createElement('td');
  15.     td5.innerHTML = '<input name="partida[]" type="checkbox" value="Cantidad de Piezas" />';
  16. var td6 = document.createElement('td');
  17.     td6.innerHTML = '<input name="partida[]" type="checkbox" value="Cantidad de Piezas Tarifa" />';
  18. var td7 = document.createElement('td');
  19.     td7.innerHTML = '<input name="partida[]" type="checkbox" value="Pais Oriden" />';
  20. var td8 = document.createElement('td');
  21.     td8.innerHTML = '<input name="partida[]" type="checkbox" value="Anexo" />';

Para guardar una cadena de chekbox que yo e creado anteriormente de manera estática utilizo este código:

Código PHP:
if(is_array($_POST['pedimento']))
    {
        foreach (
$_POST['pedimento'] as $key => $value)
        {
        
$obs $_POST['observacion'][$key];
           
$sql1 mysql_query("INSERT INTO pedimento (`numero`,`error`,`observacion`) VALUES ('$numero','$value','$obs')");
        }
    } 
Que estos valores los tomo de aquí:

Código HTML:
<td>No. Pedimento</td>
    <td><input name="pedimento[]" type="checkbox" value="No. Pedimento" onClick="javascript:document.formulario.no.disabled = !this.checked"></td>
    <td><input name="observacion[]" type="text" size="40" id="no" disabled="disabled"></td>
    <td >Destino/Origen</td>
    <td><input name="pedimento[]" type="checkbox" value="Destino/Origen" onClick="javascript:document.formulario.destino.disabled = !this.checked"></td>
    <td><input name="observacion[]" type="text" size="40" id="destino" disabled="disabled"></td>
</tr> 
La cuestión es de que manera puedo almacenar de manera similar todos los valores de las cajas de texto y chekbox que creo en la tabla dinámica? Nuevamente muestro el código donde tengo mi duda:

Código Javascript:
Ver original
  1. //Crear Fila
  2. for(var linea = 1; linea <= numero; linea++) {
  3.  
  4. var trDatos = document.createElement('tr');
  5.     trDatos.align = 'center';
  6. var td1 = document.createElement('td');
  7.     td1.innerHTML = '<input name="no_partida[]" type="text" />';
  8. var td2 = document.createElement('td');
  9.     td2.innerHTML = '<input name="partida[]" type="checkbox" value="Clasificacion" />';
  10. var td3 = document.createElement('td');
  11.     td3.innerHTML = '<input name="partida[]" type="checkbox" value="Vinculacion" />';
  12. var td4 = document.createElement('td');
  13.     td4.innerHTML = '<input name="partida[]" type="checkbox" value="Unidad de Medida" />';
  14. var td5 = document.createElement('td');
  15.     td5.innerHTML = '<input name="partida[]" type="checkbox" value="Cantidad de Piezas" />';
  16. var td6 = document.createElement('td');
  17.     td6.innerHTML = '<input name="partida[]" type="checkbox" value="Cantidad de Piezas Tarifa" />';
  18. var td7 = document.createElement('td');
  19.     td7.innerHTML = '<input name="partida[]" type="checkbox" value="Pais Oriden" />';
  20. var td8 = document.createElement('td');
  21.     td8.innerHTML = '<input name="partida[]" type="checkbox" value="Anexo" />';

Espero resuelvan mi duda Saludos!
  #6 (permalink)  
Antiguo 15/04/2015, 16:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Almacenar datos de javascript en BD

Es lo que te expliqué. Si haces caso a caricatos e insertas esos campos dinámicos en un formulario, vas a poder recibir los valores como dices que ya lo has hecho.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: dinamicos, html, php, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:27.