Foros del Web » Programando para Internet » Javascript »

Ayuda con este codigo...

Estas en el tema de Ayuda con este codigo... en el foro de Javascript en Foros del Web. Hola amigos quiero agradecer, por los apoyos que me han dado a la construccion de mi pagina, pero ahora si que estoy desesperado, ya que ...
  #1 (permalink)  
Antiguo 13/03/2006, 13:33
 
Fecha de Ingreso: julio-2005
Mensajes: 44
Antigüedad: 18 años, 9 meses
Puntos: 0
Ayuda con este codigo...

Hola amigos quiero agradecer, por los apoyos que me han dado a la construccion de mi pagina, pero ahora si que estoy desesperado, ya que no se como sacar este dilema que tengo, tengo la siguiente tabla que es dimanica, o sea al seleccionar el botos suma, aparece un nuevo tr en la tabla, eso me funciona perfecto, pero el detalle es una funcion que hace que se habra un popup y seleccione un elemento y lo deje en el input seleccionado, en los primeros 2 tr no hay problema al abrir el popup y eligo una opcion me la despliega en el campo que seleccione,pero el problema es cuando sumo un nuevo tr en la tabla, al aparecer el popup y seleccionar una opcion, no me la deja en el input donde deberia, o sea deja el resultado en un input anterior, y si hago suma nuevamente sucede lo mismo, lo deja en el ultimo input modificado... aca les envio la pagina principal:

Código HTML:
<html>
<head>
<script>
var parametro;
function popup(num)
{
parametro = window.open("copia1.php?id="+ num,"","width=400,height=500,toolbar=0,scrollbars=1,left = 450,top = 0");
}
</script>

<script language=javaScript1.2>
var numero=1;
function suma(){
	var miTabla = document.getElementById("cuerpoTabla");
	var lasCeldas = miTabla.getElementsByTagName("tr");
	var fila = document.createElement("tr");
	var celda1 = document.createElement("td");
	var celda2 = document.createElement("td");
	var celda3 = document.createElement("td");
	celda1.innerHTML = "<input type='text' name='fechas1[]' size='8' maxlength='10'>";
	celda2.innerHTML = "<input type='text' name='descripcion[]' size='30' id='resul_<? echo ++$i;?>' readonly><img src='fotos/visualizar.gif' name='ayuda' width='21' height='21' border='0' onclick='popup(<? echo $i;?>)' alt='Ver Lista Insumos'>";
	celda3.innerHTML = "<input type='text' name='cantidad[]' size='3' maxlength='4'>";
	fila.appendChild(celda1);
	fila.appendChild(celda2);
	fila.appendChild(celda3);
	miTabla.appendChild(fila);
	alert(+numero);
}
</script>
</head>
<body>
<TABLE id=unaTabla 
style="BACKGROUND-POSITION: center center;  BACKGROUND-REPEAT: no-repeat" 
border=1>
  <TBODY id=cuerpoTabla>
  <TR id=a1 align="center">
    <TD id=b1><input type="text" name="fechas1[]" size="8" maxlength="10"></TD>
    <TD id=c1><input type="text" name="descripcion[]" size="30" id="resul_<? echo ++$i;?>" readonly><img src="fotos/visualizar.gif" name="ayuda" width="21" height="21" border="0" onclick="popup(<? echo $i;?>)" alt="Ver Lista Insumos"></TD>
    <TD id=h1 align="center"><input type="text" name="cantidad[]" size="3" maxlength="4"></TD>
  </TR>
  <TR id=a2 align="center">
    <TD id=b2><input type="text" name="fechas1[]" size="8" maxlength="10"></TD>
    <TD id=c2><input type="text" name="descripcion[]" size="30" id="resul_<? echo ++$i;?>" readonly><img src="fotos/visualizar.gif" name="ayuda" width="21" height="21" border="0" onclick="popup(<? echo $i;?>)" alt="Ver Lista Insumos"></TD>
    <TD id=h2 align="center"><input type="text" name="cantidad[]" size="3" maxlength="4"></TD>
  </TR>
</TBODY></TABLE><input type="submit" name="enviar" value="Procesar Planilla" class="texto"><BUTTON onclick=suma()>sumar</BUTTON></center>
</td>
</tr>	
</table>
</body>
</html> 
El problema es que al sumar un nuevo tr la variable php $i, se elimina y solo vale 1, aunque yo le sume , realmente no se q tengo que hacer, ya estoy desesperando, lo he tratado de hacer de otra forma, pero no me resulta, si alguien me puede ayudar, seria de gran ayuda.
  #2 (permalink)  
Antiguo 13/03/2006, 14:09
 
Fecha de Ingreso: julio-2005
Mensajes: 44
Antigüedad: 18 años, 9 meses
Puntos: 0
O otra forma de realizar esto ya que en el popup tego codigo php que despliega los valores de tablas, este es el codigo:

<?
require("conexion.php");
?>

<html>
<head>
<title>Lista Insumos</title>
<style>
body {font-family:verdana;font-size:12px;}
.texto{font-family:verdna;font-size:12px;}
</style>
<script>

function enviar(obj)
{
with(document)
{
var dat = getElementById(obj).value;
with(opener.document)
{
getElementById('resul_'+<? echo $id;?>).value = dat;
}
//--- cerrar ventana actual---
window.close();
}
}
function leer(obj)
{
with(document)
{
var n = getElementById(obj).value;
var m = getElementById('1').value;
getElementById('aqui').value = m + " " + n;
}
}
function vacio()
{
with(document)
{
var m = getElementById('1').value;
getElementById('aqui').value = m;
}
}
</script>
</head>
<body >
<table border=1 cellspacing=0 cellpadding=0 width=250>
<tr>
<td><input type="text" id="d1" maxlength="30" size="31"><input type="submit" onClick="enviar('d1');" value="Enviar"></td>
</tr>
<tr>
<td><b>Canales</b></td>
</tr>
<?
$sql="select * from canales order by id_canales";
$res=mysql_query($sql);
$row=mysql_num_rows($res);
for($i=0; $i<$row; $i++){
$col=mysql_fetch_array($res);
?>
<tr onmouseover=leer('d<? echo $i;?>'); onmouseout=vacio();>
<td id=d<? echo $i;?> value="<? echo $col[1];?>" onclick=enviar('d<? echo $i;?>');><? echo $col[1];?></td>
</tr>
<?
}
?>

<tr>
<td><b>Perfiles Cuadrados</b></td>
</tr>
<?
$sql1="select * from perfiles_cuadrados order by id_cuadrados";
$res1=mysql_query($sql1);
$row1=mysql_num_rows($res1);
for($j=0; $j<$row1; $j++, $i++){
$col1=mysql_fetch_array($res1);
?>
<tr onmouseover=leer('d<? echo $i;?>'); onmouseout=vacio();>
<td id=d<? echo $i;?> value="<? echo $col1[1];?>" onclick=enviar('d<? echo $i;?>');><? echo $col1[1];?></td>
</tr>
<?
}
?>
<tr>
<td><b>Perfiles Costanera</b></td>
</tr>
<?
$sql2="select * from perfiles_costanera order by id_costanera";
$res2=mysql_query($sql2);
$row2=mysql_num_rows($res2);
for($k=0; $k<$row2; $k++, $i++){
$col2=mysql_fetch_array($res2);
?>
<tr onmouseover=leer('d<? echo $i;?>'); onmouseout=vacio();>
<td id=d<? echo $i;?> value="<? echo $col2[1];?>" onclick=enviar('d<? echo $i;?>');><? echo $col2[1];?></td>
</tr>
<?
}
?>
<tr>
<td><b>Perfiles Rectangulares</b></td>
</tr>
<?
$sql3="select * from perfiles_rectangulares order by id_rectang";
$res3=mysql_query($sql3);
$row3=mysql_num_rows($res3);
for($p=0; $p<$row3;$p++, $i++){
$col3=mysql_fetch_array($res3);
?>
<tr onmouseover=leer('d<? echo $i;?>'); onmouseout=vacio();>
<td id=d<? echo $i;?> value="<? echo $col3[1];?>" onclick=enviar('d<? echo $i;?>');><? echo $col3[1];?></td>
</tr>
<?
}
?>
<tr>
<td><b>Planchas</b></td>
</tr>
<?

$sql4="select * from planchas order by id_pl";
$res4=mysql_query($sql4);
$row4=mysql_num_rows($res4);
for($m=0; $m<$row4;$m++, $i++){
$col4=mysql_fetch_array($res4);
?>
<tr onmouseover=leer('d<? echo $i;?>'); onmouseout=vacio();>
<td id=d<? echo $i;?> value="<? echo $col4[1];?>" onclick=enviar('d<? echo $i;?>');><? echo $col4[1];?></td>
</tr>
<?
}
?>
<tr>
<td><b>Planchas Negras</b></td>
</tr>
<?
$sql5="select * from planchas_negras order by id_planchas";
$res5=mysql_query($sql5);
$row5=mysql_num_rows($res5);
for($n=0; $n<$row5;$n++, $i++){
$col5=mysql_fetch_array($res5);
?>
<tr onmouseover=leer('d<? echo $i;?>'); onmouseout=vacio();>
<td id=d<? echo $i;?> value="<? echo $col5[1];?>" onclick=enviar('d<? echo $i;?>');><? echo $col5[1];?></td>
</tr>
<?
}
?>
<tr>
<td><b>Otros</b></td>
</tr>
<?
$sql6="select * from otros order by id_otros";
$res6=mysql_query($sql6);
$row6=mysql_num_rows($res6);
for($b=0; $b<$row6;$b++, $i++){
$col6=mysql_fetch_array($res6);
?>
<tr onmouseover=leer('d<? echo $i;?>'); onmouseout=vacio();>
<td id=d<? echo $i;?> value="<? echo $col6[1];?>" onclick=enviar('d<? echo $i;?>');><? echo $col6[1];?></td>
</tr>
<?
}
?>
</table>
<input type=hidden id=1 size=40 readonly>
</body>
</html>
  #3 (permalink)  
Antiguo 13/03/2006, 18:32
 
Fecha de Ingreso: julio-2005
Mensajes: 44
Antigüedad: 18 años, 9 meses
Puntos: 0
Como he visto ejemplos nose puede hacer de la forma que estoy haciendo, :( asi que tendre q buscar otra forma de realizar esta labor , las personas q han hecho formularios de este estilo me podran ayudar con esta gran labor, !!!
de antemano muchas gracias !!!!
  #4 (permalink)  
Antiguo 13/03/2006, 20:49
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
A ver, prueba hacer lo siguiente:
Código:
//...
var lasCeldas = miTabla.getElementsByTagName("tr");
var i = lasCeldas.length+1;
//...
celda2.innerHTML = "<input type='text' name='descripcion[]' size='30' id='resul_"+i+"' readonly><img src='fotos/visualizar.gif' name='ayuda' width='21' height='21' border='0' onclick='popup("+i+")' alt='Ver Lista Insumos'>";
Yo no se que valores tiene $i, pero si es un correlativo, simplemente accede a la celda que tiene ese valor, y le sumas 1.
Otra cosa importante! Tu estas confudiendo PHP con Javascript. Como dice la frase: "juntos pero no revueltos". Lo mismo pasa con ellos. Uno trabaja en servidor; el otro, en el browser.
Si no entendiste cual es tu problema, te explico de otra forma.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 20/03/2006, 16:58
 
Fecha de Ingreso: julio-2005
Mensajes: 44
Antigüedad: 18 años, 9 meses
Puntos: 0
Muchas gracias flaviovich, tenias toda la razon,, mi mayor problema era como adicionar codigo javascript al html... de verdad gracias , habia probado con +variable, 'variable'....y era "+variable+"
Gracias !!!!
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 15:01.