Foros del Web » Programando para Internet » Javascript »

Referenciar celdas con id para usarlos en mysql

Estas en el tema de Referenciar celdas con id para usarlos en mysql en el foro de Javascript en Foros del Web. Estimados: Tengo un problema de referencia de datos en una tabla html creada por código php. Ej: mi tabla se compone de: A B C ...
  #1 (permalink)  
Antiguo 05/12/2007, 06:42
 
Fecha de Ingreso: diciembre-2007
Mensajes: 19
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Referenciar celdas con id para usarlos en mysql

Estimados: Tengo un problema de referencia de datos en una tabla html creada por código php.
Ej: mi tabla se compone de:

A B C D
1 01 34 23 56
2 23 45 67 90
3 67 04 01 50
4 87 67 34 12

Estos valores los modifico mediante una rutina que genera numeros aleatorios, en javascript.

Necesito, desde código php referenciar cada celda para guardar su valor en un registro en mysql. (La tabla se genera por código dinámico en php con la función echo).
  #2 (permalink)  
Antiguo 05/12/2007, 07:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Referenciar celdas con id para usarlos en mysql

Puedes crear un formulario donde el nombre puede ser columna-fila y el valor el número aleatorio y luego al enviarlo puedes recogerlos según se muestran, aunque si lo haces en javascript tendrás cada vez que generas un número ver el número de columna y fila y guardar el número aleatorio en el campo correspondiente, osea que es más fácil hacerlo directamente en php.
  #3 (permalink)  
Antiguo 05/12/2007, 07:15
 
Fecha de Ingreso: diciembre-2007
Mensajes: 19
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Re: Referenciar celdas con id para usarlos en mysql

Estimado: Mi código de generación de la tabla desde una consulta es:

<?php
if (mysql_num_rows($matriz) > 0){
echo "<table id='tabladatos' border = '1'> \n";
echo "<tr>
<td></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>A</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>B</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>C</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>D</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>E</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>F</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>G</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>H</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>I</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>J</strong></td>
</tr>";

$L=1;
while ($fila = mysql_fetch_row($matriz))
{
echo "<tr>";
echo "<td width='20' align='center' bgcolor='#CCCCCC'><strong>$L</strong></td>";
echo "<td width='20' align='center' id='A".$L."'>".$fila[0]."</td>";
echo "<td width='20' align='center' id='B".$L."'>".$fila[1]."</td>";
echo "<td width='20' align='center' id='C".$L."'>".$fila[2]."</td>";
echo "<td width='20' align='center' id='D".$L."'>".$fila[3]."</td>";
echo "<td width='20' align='center' id='E".$L."'>".$fila[4]."</td>";
echo "<td width='20' align='center' id='F".$L."'>".$fila[5]."</td>";
echo "<td width='20' align='center' id='G".$L."'>".$fila[6]."</td>";
echo "<td width='20' align='center' id='H".$L."'>".$fila[7]."</td>";
echo "<td width='20' align='center' id='I".$L."'>".$fila[8]."</td>";
echo "<td width='20' align='center' id='J".$L."'>".$fila[9]."</td>";
echo "</tr>";
$L++;
}
echo "</table>";
}else{
echo "<table id='tabladatos' border = '1'> \n";
echo "<tr>
<td></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>A</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>B</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>C</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>D</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>E</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>F</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>G</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>H</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>I</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>J</strong></td>
</tr>";

$H=1;
while ($H <6)
{
echo "<tr>";
echo "<td width='20' align='center' bgcolor='#CCCCCC'><strong>$H</strong></td>";
echo "<td width='20' align='center' id='A".$H."'></td>";
echo "<td width='20' align='center' id='B".$H."'></td>";
echo "<td width='20' align='center' id='C".$H."'></td>";
echo "<td width='20' align='center' id='D".$H."'></td>";
echo "<td width='20' align='center' id='E".$H."'></td>";
echo "<td width='20' align='center' id='F".$H."'></td>";
echo "<td width='20' align='center' id='G".$H."'></td>";
echo "<td width='20' align='center' id='H".$H."'></td>";
echo "<td width='20' align='center' id='I".$H."'></td>";
echo "<td width='20' align='center' id='J".$H."'></td>";
echo "</tr>";
$H++;
}
echo "</table>";
}
?>

luego regenero los datos desde una función javascript igual a:

function lotto(){
var totalnumbers=10 //total de numeros a generar
var lowerbound=1 //limite inferior
var upperbound=99 //limite superior
var brd = document.getElementById("tabladatos");
B=' ';
LottoNumbers=new Array();
for (i = 1; i <= totalnumbers; i++)
{
RandomNumber = Math.round(lowerbound+Math.random()*(upperbound-lowerbound));
for (j = 1; j <= totalnumbers; j)
{
if (RandomNumber == LottoNumbers[j])
{
RandomNumber=Math.round(lowerbound+Math.random()*( upperbound-lowerbound));
j=0;
}
j++;
}
LottoNumbers[i]=RandomNumber;
}
LottoNumbers=LottoNumbers.toString();
X=LottoNumbers.split(',');
for (i=0; i < X.length; i++)
{
X[i]=X[i];
if (X[i].length==1)
X[i]='0'+X[i];
}
for (i=1; i < X.length; i++)
{
//esta línea modifica los valores en cada celda (total=50 datos)
brd.rows[$filas].cells[i].innerHTML = X[i];
}
}

Lo que necesito es poder referenciar los datos nuevos, desde sus respectivas celdas, para almacenarlos en la base de datos con un update.

He intentado utilizar array php y array javascript, pero no he logrado traspasar los datos entre javascript y php.

La actualización se realiza en otro archivo php de control.

Ojalá pudiras orientarme con un poco de código,
  #4 (permalink)  
Antiguo 05/12/2007, 07:24
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Referenciar celdas con id para usarlos en mysql

Entonces tienes guardatos en una Base de Datos números y al mostrarlos en una tabla cuáles quieres exactamente regenerar aleatoriamente??
  #5 (permalink)  
Antiguo 05/12/2007, 07:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 19
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Re: Referenciar celdas con id para usarlos en mysql

Estimado: Los datos de la base de datos forman parte de una tabla de seguridad al tipo de las que se utilizan en los bancos para las transacciones por internet.

La generación de nuevos números para generar una nueva tabla, no es problema, la situación es que cuando genero los nuevos números para la tabla, los id que le he puesto a las celdas, cuando rescato lo valores desde la base de datos, no me funcionan ya que utilizo $A1= getVars_XSS( $_POST, 'A1');
para rescatarlos desde el otro archivo php y la variable queda en "" (cero, vacía), creo que es por que no la reconoce como etiqueta válida.

Luego de rellenar la tabla con los nuevos valores, necesito actualizar los datos en la base de datos y para eso requiero referenciarlos para incluirlos en la consulta update.
  #6 (permalink)  
Antiguo 05/12/2007, 09:13
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Referenciar celdas con id para usarlos en mysql

En el código que has puesto no hay formularios, de dónde lo rescatas??

Lo que intentas es que el cliente pueda generarse una nueva tabla de seguridad cuando quiera??
  #7 (permalink)  
Antiguo 05/12/2007, 11:13
 
Fecha de Ingreso: diciembre-2007
Mensajes: 19
Antigüedad: 16 años, 4 meses
Puntos: 0
De acuerdo Re: Referenciar celdas con id para usarlos en mysql

La generación de tablas de seguridad son de exclusividad del administrador del sitio.

La tabla generada desde la consulta se crea dentro de otra tabla:

para que se entienda incluyo el código resumido del formulario html (es muy largo para el mensaje):

<?php
class HTML {
function View( $resultados, $total_check, $total, $limit_ini, $limit_end, $years, $selected_group ) {
global $site_path, $msg, $filas;
?>
<script language="javascript" type="text/javascript" src="<?php echo $site_path?>/include/js/javascript.js"></script>
<script language="javascript" type="text/javascript">
function submitbutton(task){
document.adminForm.task.value = task;
document.adminForm.submit();
}
</script>
<?php
if($msg){
echo '<div class="mensaje">';
echo $msg;
echo '</div>';
}
?>
<table width="100%">
.....
</select>
</div></td>
</tr>
<tr>
<td colspan="2"><form name="adminForm" method="post" action="">
<?php
echo '<div class="paginacion">';
paginacion( $limit_ini, $limit_end, $total, 'index.php?' );
echo '<div>';
?>
<table border="0" align="center" cellpadding="0"
....
</table>

<?php
}
function Edit( $data, $rut, $servicios, $matriz ) {
global $site_path;

//Registra la acción a ejecutar
if( $rut ){
$accion = "Editar ".$data->nombre;
}else{
$accion = "Agregar Nuevo Usuario";
}

?>

........
<script language="javascript" type="text/javascript">
function submitbutton(){
var form = document.adminForm;
......
}
function hideShow( ){
var grupo = document.getElementById("grupo");
var valor = grupo.options[grupo.selectedIndex].value;
var Obj = document.getElementById('hideShow');

if(valor != 1){
if(Obj.style.display == 'none'){
Obj.style.display = 'block';
}
}else{

if(Obj.style.display == 'block'){
Obj.style.display = 'none';
}
}
}
function cleanUsers(){
<?php
if ($data->grupo == 1){
echo "document.getElementById('hideShow').style.dis play = 'none';";
}else{
echo "document.getElementById('hideShow').style.dis play = 'block';";
}
?>
document.getElementById("duracion").value = "";

var calendarioHS = document.getElementById("calendarioHS").value;
if(calendarioHS == 2){
document.getElementById('hideShow').style.display = 'block';
}
}
function cleanActivacion(){
document.getElementById("duracion").value = "";
}

function genera(){
document.getElementById("id_tabla").value = Math.round(100+Math.random()*(1000-100));
for (k = 1; k <= 6; k++)
{
$filas=k;
lotto();
}
}
function lotto(){
var totalnumbers=10 //total de numeros a generar
var lowerbound=1 //limite inferior
var upperbound=99 //limite superior
var brd = document.getElementById("tabladatos");
B=' ';
LottoNumbers=new Array();
for (i = 1; i <= totalnumbers; i++)
{
RandomNumber = Math.round(lowerbound+Math.random()*(upperbound-lowerbound));
for (j = 1; j <= totalnumbers; j)
{
if (RandomNumber == LottoNumbers[j])
{
RandomNumber=Math.round(lowerbound+Math.random()*( upperbound-lowerbound));
j=0;
}
j++;
}
LottoNumbers[i]=RandomNumber;
}
LottoNumbers=LottoNumbers.toString();
X=LottoNumbers.split(',');
for (i=0; i < X.length; i++)
{
X[i]=X[i];
if (X[i].length==1)
X[i]='0'+X[i];
}
for (i=1; i < X.length; i++)
{
brd.rows[$filas].cells[i].innerHTML = X[i];
}
}
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="centro">
//estructura superiro de la tabla, no se incluye ya que no alcanza para el mensaje, sólo 10000 caracteres//
....
//Se inicia la generación de la tabla desde el mysql
<table class="adminlist" id="clave">
<tr>
<td colspan="3" align="right" valign="top"><div align="center"><strong>INFORMACI&Oacute;N DEL NUEVO USUARIO</strong> </div></td>
<td rowspan="8" valign="top">&nbsp;</td>
<td rowspan="8" valign="top">&nbsp;</td>
<td rowspan="8" valign="top">&nbsp;</td>
<td rowspan="8" valign="top">&nbsp;</td>
<td rowspan="8" valign="top">&nbsp;</td>
<td rowspan="8" valign="top">&nbsp;</td>
<td rowspan="8" valign="top">&nbsp;</td>
<td rowspan="8" valign="top">&nbsp;</td>
<td colspan="4" rowspan="8" valign="top">&nbsp;</td>
<td colspan="5" valign="top"><div align="center"><strong>TABLA DE VALIDACI&Oacute;N </strong></div></td>
</tr>
<tr>
<td height="21" align="right" valign="top">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td colspan="5" rowspan="6"><div align="left">
<?php
if (mysql_num_rows($matriz) > 0){
echo "<table id='tabladatos' border = '1'> \n";
echo "<tr>
<td></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>A</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>B</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>C</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>D</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>E</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>F</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>G</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>H</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>I</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>J</strong></td>
</tr>";

$L=1;
while ($fila = mysql_fetch_row($matriz))
{
echo "<tr>";
echo "<td width='20' align='center' bgcolor='#CCCCCC'><strong>$L</strong></td>";
echo "<td width='20' align='center' id='A".$L."'>".$fila[0]."</td>";
echo "<td width='20' align='center' id='B".$L."'>".$fila[1]."</td>";
echo "<td width='20' align='center' id='C".$L."'>".$fila[2]."</td>";
echo "<td width='20' align='center' id='D".$L."'>".$fila[3]."</td>";
echo "<td width='20' align='center' id='E".$L."'>".$fila[4]."</td>";
echo "<td width='20' align='center' id='F".$L."'>".$fila[5]."</td>";
echo "<td width='20' align='center' id='G".$L."'>".$fila[6]."</td>";
echo "<td width='20' align='center' id='H".$L."'>".$fila[7]."</td>";
echo "<td width='20' align='center' id='I".$L."'>".$fila[8]."</td>";
echo "<td width='20' align='center' id='J".$L."'>".$fila[9]."</td>";
echo "</tr>";
$L++;
}
echo "</table>";
}else{
echo "<table id='tabladatos' border = '1'> \n";
echo "<tr>
<td></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>A</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>B</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>C</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>D</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>E</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>F</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>G</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>H</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>I</strong></td>
<td width='20' align='center' bgcolor='#CCCCCC'><strong>J</strong></td>
</tr>";

$H=1;
while ($H <6)
{
echo "<tr>";
echo "<td width='20' align='center' bgcolor='#CCCCCC'><strong>$H</strong></td>";
echo "<td width='20' align='center' id='A".$H."'></td>";
echo "<td width='20' align='center' id='B".$H."'></td>";
echo "<td width='20' align='center' id='C".$H."'></td>";
echo "<td width='20' align='center' id='D".$H."'></td>";
echo "<td width='20' align='center' id='E".$H."'></td>";
echo "<td width='20' align='center' id='F".$H."'></td>";
echo "<td width='20' align='center' id='G".$H."'></td>";
echo "<td width='20' align='center' id='H".$H."'></td>";
echo "<td width='20' align='center' id='I".$H."'></td>";
echo "<td width='20' align='center' id='J".$H."'></td>";
echo "</tr>";
$H++;
}
echo "</table>";
}
?>
</tr>
<tr>
<td width="200" align="right" valign="top">RUT : </td>
<td valign="top">
.........
</table>
<?php
}
}
?>
  #8 (permalink)  
Antiguo 05/12/2007, 11:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Referenciar celdas con id para usarlos en mysql

En dado caso necesitas usar campos del tipo hidden para transportar los valores, por decir:
Código PHP:
echo "<td width='20' align='center' id='B".$H."'><input type=\"hidden\" name=\"B".$H."\" value=\"\" /></td>"
Saludos.
  #9 (permalink)  
Antiguo 05/12/2007, 11:41
 
Fecha de Ingreso: septiembre-2007
Mensajes: 220
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Referenciar celdas con id para usarlos en mysql

En php no puedes capturar datos por el id, capturas por lo que envias por get, post, cookie... para enviarlos tendrás que poner campos hidden en el formulario también.

Aunque sigo sin entender del todo lo que quieres conseguir generando números aleatorios con javascript y enviándolos.
  #10 (permalink)  
Antiguo 05/12/2007, 14:13
 
Fecha de Ingreso: diciembre-2007
Mensajes: 19
Antigüedad: 16 años, 4 meses
Puntos: 0
Desacuerdo Re: Referenciar celdas con id para usarlos en mysql

He implementado tu idea de la siguiente manera:

echo "<td width='20' align='center' id='a".$L."'><input type=\"hidden\" name=\"a".$L."\" value=\"$fila[0]\" size='2' maxlength='2'/>".$fila[0]."</td>";

inmediatamente de lanzar este código y antes de lanzar el siguiente, coloco el código echo $L, para comprovar en pantalla el valor de $L y me aparece 11111, al segundo código me aparece 1111122222.

Creo que el problemA está en la rutina de recorrido del array de mysql, los input ocultos no responden a los nombres supuestamente asignado, ya que desde una rutina de javascript pongo: document.getElementById("a1").value=X[i]; y no asigna el valor al input correspondiente, lo he confirmado dejando el input como type="text", para ver su contenido.
  #11 (permalink)  
Antiguo 05/12/2007, 15:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Referenciar celdas con id para usarlos en mysql

Si lo estas asignando vía Javascript te muevo al foro correspondiente donde te podrán ayudar.

Saludos.
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 00:33.