1281
Aprender a programar desde cero / Re:php... pasar parámetros a javascript para construir una url
« en: 27 de Diciembre 2014, 22:04 »
No conecto vía otro medio que no sean los foros...
Si no entiendo mal aquí estás generando las filas donde muestras para una identificación los resultados obtenidos (filas) que podrían ser dos, tres, cinco, diez filas dependiendo del caso:
while($fila=mysql_fetch_array($resultado_consulta_mysql1))
{
echo "<tr>";
echo'<td align="center">'.$fila['Nombre1Citado']...
Luego intentas meter el botón para imprimir en esta línea:
echo'<td>'.'<font color=#000000><input type="button" value="Aceptar" onClick="ImprovedTable()">'.'</td>';
Y aquí llamas a una función JavaScript que utiliza los valores
documento=document.raiz.ident.value;
doc01=document.raiz.ident01.value;
Donde raiz.ident.value se supone que es la identificación
Y raiz.ident01.value se supone que es el campo NumeroCitacion asociado a una identificación y a una fila de la base de datos.
Ahora bien, si para cada resultado muestras los datos introduciendo esta línea:
echo '<td>'.'<input type="text" id="ident01" name="ident01" size="10"'.'value='.$fila['NumeroCitacion'].'>'.'</td>';
Puede haber muchas líneas que tengan el mismo id (que sería ident01).
Si muchas líneas tienen el mismo id, cuando en javascript trates de hacer esto: doc01=document.raiz.ident01.value;
no vas a obtener un resultado coherente.
¿Por qué? Porque un id tiene que ser único en la página, no puedes (o no debes) tener muchos elementos con el mismo id precisamente porque no vas a poder diferenciar unos de otros.
Seguramente hay varias vías para resolver esto. Una quizás sea pasarle como parámetro a la función javascript el valor de $fila['NumeroCitacion'] que es al fin y al cabo lo que tratas de rescatar luego.
Habría que crear la función de forma que reciba el parámetro y luego pasarle el parámetro, algo así como
echo'<td>'.'<font color=#000000><input type="button" value="Aceptar" onClick="ImprovedTable2('.$fila['NumeroCitacion'].')">'.'</td>';
Si te fijas aquí lo que estoy intentando es pasar como parámetro lo que me permite identificar a la fila concreta
En la función javascript tendríamos algo como:
function ImprovedTable2(numeroCitacion)
...
...
window.open('ReporCitacion.php?doc='+documento+'&doc01='+numeroCitacion, 'impresion', 'status=no, resizable=yes, width=1200, height=700');
Se trataría de construir una url única asociada a la fila concreta de que se trate...
Quizás te sea útil repasar algunas entregas de este curso javascript: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206
Saludos
Si no entiendo mal aquí estás generando las filas donde muestras para una identificación los resultados obtenidos (filas) que podrían ser dos, tres, cinco, diez filas dependiendo del caso:
while($fila=mysql_fetch_array($resultado_consulta_mysql1))
{
echo "<tr>";
echo'<td align="center">'.$fila['Nombre1Citado']...
Luego intentas meter el botón para imprimir en esta línea:
echo'<td>'.'<font color=#000000><input type="button" value="Aceptar" onClick="ImprovedTable()">'.'</td>';
Y aquí llamas a una función JavaScript que utiliza los valores
documento=document.raiz.ident.value;
doc01=document.raiz.ident01.value;
Donde raiz.ident.value se supone que es la identificación
Y raiz.ident01.value se supone que es el campo NumeroCitacion asociado a una identificación y a una fila de la base de datos.
Ahora bien, si para cada resultado muestras los datos introduciendo esta línea:
echo '<td>'.'<input type="text" id="ident01" name="ident01" size="10"'.'value='.$fila['NumeroCitacion'].'>'.'</td>';
Puede haber muchas líneas que tengan el mismo id (que sería ident01).
Si muchas líneas tienen el mismo id, cuando en javascript trates de hacer esto: doc01=document.raiz.ident01.value;
no vas a obtener un resultado coherente.
¿Por qué? Porque un id tiene que ser único en la página, no puedes (o no debes) tener muchos elementos con el mismo id precisamente porque no vas a poder diferenciar unos de otros.
Seguramente hay varias vías para resolver esto. Una quizás sea pasarle como parámetro a la función javascript el valor de $fila['NumeroCitacion'] que es al fin y al cabo lo que tratas de rescatar luego.
Habría que crear la función de forma que reciba el parámetro y luego pasarle el parámetro, algo así como
echo'<td>'.'<font color=#000000><input type="button" value="Aceptar" onClick="ImprovedTable2('.$fila['NumeroCitacion'].')">'.'</td>';
Si te fijas aquí lo que estoy intentando es pasar como parámetro lo que me permite identificar a la fila concreta
En la función javascript tendríamos algo como:
function ImprovedTable2(numeroCitacion)
...
...
window.open('ReporCitacion.php?doc='+documento+'&doc01='+numeroCitacion, 'impresion', 'status=no, resizable=yes, width=1200, height=700');
Se trataría de construir una url única asociada a la fila concreta de que se trate...
Quizás te sea útil repasar algunas entregas de este curso javascript: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206
Saludos