
Hola Amigos del Foro de PHP.
(

Origen : rac_distvamm.php
Destino : rac_distvamm.php
Espero que me entienden.
atte.
myconatani.
| |||
No sé si tomastes el título de tu mensaje de la "FAQ": http://www.forosdelweb.com/f18/faqs-php-530600-post262072/ Pero ahí explica como hacerlo sin problemas. Que el script receptor sea el mismo que el que envia no es problema .. Tu lógica será la que defina si aplicar la "serialización" o la "des-serialización" en función de la existencia de tu variable que propagas en el URL: Código PHP: |
| ||||
Envio de arreglos de script.php a sript.php Estimado Cluster. ![]() Disculpa, pero me he estado cabeceando todo el día y opte por enviar un ejemplo de lo que yo quiero : <? echo "<html>"; echo "<head>"; ?> <script language="JavaScript" type="text/javascript"> var n=0; function Valida_sel () { var n=0; chk=document.getElementById('tabla').getElementsBy TagName('input'); for (i=0; i<chk.length; i++) {if (chk[i].checked) {n++;}} if (n==0) {alert ("Debe seleccionar al menos una CELDA"); return false;} } </script> <? function arr_envia($arr) { $tmp = serialize($arr); $tmp = urlencode($tmp); return $tmp; } function arr_recibe($arr) { $tmp = stripslashes($arr); $tmp = urldecode($tmp); $tmp = unserialize($tmp); return $tmp; } if (ISSET($_GET['$lineas'])) {$lineas=$_GET['$lineas']; $lineas=arr_recibe($lineas); echo "<br>RECIBE : ",$lineas;} else {echo "<br>ENVIO : ",$lineas; $lineas=arr_envia($lineas); echo "<br>ENVIO : ",$lineas;} echo "<title>Enviar Arreglos a un mismo SCRIPT</title>"; echo "</head>"; echo "<body>"; echo "<form name=form1 method=GET action=prueba02.php?lineas=$lineas>"; echo "<table id=tabla>"; echo "<tr><td>"; echo "<a href=\"prueba02.php?lineas=$lineas\">Presione"; echo "</td></tr>"; $sel=""; if ($lineas[0]=="1") {$sel=" checked ";} echo "\n<tr><td><input type=checkbox name=lineas[0] $sel value='1'>Marcelo</td></tr>"; $sel=""; if ($lineas[1]=="2") {$sel=" checked ";} echo "\n<tr><td><input type=checkbox name=lineas[1] $sel value='2'>Myriam</td></tr>"; $sel=""; if ($lineas[2]=="3") {$sel=" checked ";} echo "\n<tr><td><input type=checkbox name=lineas[2] $sel value='3'>Constanza</td></tr>"; $sel=""; if ($lineas[3]=="4") {$sel=" checked ";} echo "\n<tr><td><input type=checkbox name=lineas[3] $sel value='4'>Natalia</td></tr>"; $sel=""; if ($lineas[4]=="5") {$sel=" checked ";} echo "\n<tr><td><input type=checkbox name=lineas[4] $sel value='5'>Tamara</td></tr>"; $sel=""; if ($lineas[5]=="6") {$sel=" checked ";} echo "\n<tr><td><input type=checkbox name=lineas[5] $sel value='6'>Nicole</td></tr>"; echo "\n<input type=hidden name=lineas value='$lineas'>"; echo "\n<input type=submit name=buscar id=buscar value= Buscar OnClick=\"return Valida_sel();\">"; echo "</table>"; echo "</form>"; echo "</body>"; echo "</html>"; ?> Nota : De partida cuando llamo la pagina esta me destaca la casilla de constanza eso esta malo ¿Porque lo destaca?, al elegir otra casilla y le doy buscar no me mantiene la casilla y vuelve a destacar a Constanza. Bueno la idea es que seleccione una o mas casilla, al presionar el Boton SUBMIT que mantenga las selecciones y cuando presione el Link que esta me mantenga la selccion al igual que el SUBMIT. No se en que estoy mal. Espero que me entiendan. Gracias. atte. Marcelo Lizana B: Nick : myconatani
__________________ myconatani |
| |||
No entiendo por què haces esto: echo "<form name=form1 method=GET action=prueba02.php?lineas=$lineas>"; Tu array que compones en los input de tus checbox YA pasan como tal a tu script de proceso (sea si mismo o donde apuntes en tu action) al hacer el submit de tu formulario. Es màs .. si lo quisieras hacer asì, .. tendrìas que tomar el total de tus elementos de tu formulario (los checkbox y otros que tuvieras) con JAVASCRIPT .. Para PHP en ese punto "no sabe" ni tiene forma de saber que checkbox cambias de estado ni que valor toman .. eso ya està sucediendo en el "cliente" (lado del cliente) .. no en "PHP" (lado del servidor). En tu caso .. No es necesario ni que "numeres" los indices de tus checkbox (de sus nombres de variable) .. puedes usar name="linea[]" .. serà automàtico la creaciòn del indice (desde el 0 a los que tengas). Usa las comillas en los tag de HTML que corresponda!!!. Usa para tu action simplemente: Código PHP: Y al principio de tu script: Código PHP: Un saludo, |
| |||
Se me olvidò ... Y quita todo eso de: echo "\n<input type=hidden name=lineas value='$lineas'>"; y .... function arr_envia($arr) { $tmp = serialize($arr); $tmp = urlencode($tmp); return $tmp; } function arr_recibe($arr) { $tmp = stripslashes($arr); $tmp = urldecode($tmp); $tmp = unserialize($tmp); return $tmp; } if (ISSET($_GET['$lineas'])) {$lineas=$_GET['$lineas']; $lineas=arr_recibe($lineas); echo "<br>RECIBE : ",$lineas;} else {echo "<br>ENVIO : ",$lineas; $lineas=arr_envia($lineas); echo "<br>ENVIO : ",$lineas;} Un saludo, |
| ||||
![]() ![]() Hola Cluster, espero que estes bien y disculpa las molestias que te estoy dando pero recien me estoy iniciando en la creación de pagina en PHP, sin capacitación previa y a puro manual. Bueno, hice las modificaciones correspondiente y funciona bien cuando presiono el boton SUBMIT y en la barra de la url mes da esto "http://mlizana.salfa.cl/prueba02.php...&buscar=Buscar", pero cuando presiono el LINK pierdo el contenido de la variable $lineas, y esta queda con un valor Array. Y en la barra de url me da esto http://<b>http://mlizana.salfa.cl/pr...neas=Array</b>. De que manera puedo conservar el valor la variable $linea sin que me afecte el procedimiento del boton SUBMIT, ¿ que es lo que me falta ?. ![]() Escript de Ejemplo : <? if (isset($_GET['lineas'])) { $lineas=$_GET['lineas']; } echo "<html>"; echo "<head>"; ?> <script language="JavaScript" type="text/javascript"> var n=0; function Valida_sel () { var n=0; chk=document.getElementById('tabla').getElementsBy TagName('input'); for (i=0; i<chk.length; i++) {if (chk[i].checked) {n++;}} if (n==0) {alert ("Debe seleccionar al menos una CELDA"); return false;} } </script> <? echo "<title>Enviar Arreglos a un mismo SCRIPT</title>"; echo "</head>"; echo "<body>"; echo "<form name=form1 method=GET action=$php_self>"; echo "<table id=tabla>"; $sel=""; for ($i=0; $i<=5; $i++) {if ($lineas[$i]=="0") {$sel=" checked ";break;}} echo "\n<tr><td><input type=checkbox name=\"lineas[]\" $sel value='0'>Marcelo</td></tr>"; $sel=""; for ($i=0; $i<=5; $i++) {if ($lineas[$i]=="1") {$sel=" checked ";break;}} echo "\n<tr><td><input type=checkbox name=\"lineas[]\" $sel value='1'>Myriam</td></tr>"; $sel=""; for ($i=0; $i<=5; $i++) {if ($lineas[$i]=="2") {$sel=" checked ";break;}} echo "\n<tr><td><input type=checkbox name=\"lineas[]\" $sel value='2'>Constanza</td></tr>"; $sel=""; for ($i=0; $i<=5; $i++) {if ($lineas[$i]=="3") {$sel=" checked ";break;}} echo "\n<tr><td><input type=checkbox name=\"lineas[]\" $sel value='3'>Natalia</td></tr>"; $sel=""; for ($i=0; $i<=5; $i++) {if ($lineas[$i]=="4") {$sel=" checked ";break;}} echo "\n<tr><td><input type=checkbox name=\"lineas[]\" $sel value='4'>Tamara</td></tr>"; $sel=""; for ($i=0; $i<=5; $i++) {if ($lineas[$i]=="5") {$sel=" checked ";break;}} echo "\n<tr><td><input type=checkbox name=\"lineas[]\" $sel value='5'>Nicole</td></tr>"; echo "\n<input type=submit name=buscar id=buscar value= Buscar OnClick=\"return Valida_sel();\">"; echo "<tr><td align=center bgcolor=cccccc><br>"; echo "<a href=\"prueba02.php?lineas=$lineas\">LINK<a>"; echo "</td></tr>"; echo "</table>"; echo "</form>"; echo "</body>"; echo "</html>"; ?> Muy agradecido,. atte. myconatani Santiago de Chile, 20/12/2004 - 11:35 hrs.
__________________ myconatani |