Foros del Web » Programando para Internet » PHP »

formulario dinamico php cambio de selects

Estas en el tema de formulario dinamico php cambio de selects en el foro de PHP en Foros del Web. Wenas a todos soy nuevo y espero que me puedan responder a esto: Tengo una pagina web en PHP en la que tengo un formulario ...
  #1 (permalink)  
Antiguo 09/04/2013, 04:05
Avatar de mariogc1992  
Fecha de Ingreso: abril-2013
Ubicación: León
Mensajes: 64
Antigüedad: 11 años
Puntos: 0
formulario dinamico php cambio de selects

Wenas a todos soy nuevo y espero que me puedan responder a esto:
Tengo una pagina web en PHP en la que tengo un formulario con varios select y quiero de alguna manera enlazarlos y que cuando uno cambie se modifique el que he cambiado por el seleccionado es decir:
tengo estos select: y quiero q cambie a esto directamente:

1==============>5
2 2
3 3
4 4
5==============>1

sin necesidad de ir al ultimo select y modificarlo es decir que se haga dinamicamente me podriais hechar una mano por favor .

Un saludo,
Si se necesita aclaracion puedo mandar imagenes.
  #2 (permalink)  
Antiguo 09/04/2013, 04:16
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: formulario dinamico php cambio de selects

para esto necesitas

-php poo

-sin ajax + javascript: varios form cada uno con un select y boton enviar

-ajax + javascript: un form con varios select y uno/varios botones enviar

de manera que utilizando las herencias cada select reciba opciones según el anterior

esa es la idea técnica en términos generales, aunque es probable que me equivoque porque yo también estoy aprendiendo.

escribir el código es algo más complicado que dar esta idea general

saludos
  #3 (permalink)  
Antiguo 09/04/2013, 04:22
 
Fecha de Ingreso: octubre-2010
Ubicación: Costa Brava
Mensajes: 58
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: formulario dinamico php cambio de selects

Hola Mariogc,

Yo también me estoy peleando con unos selects y creo que hago más o menos lo mismo. Al seleccionar el primero, que me restringa las opciones del segundo a partir del valor seleccionado. A ver si te sirve de algo.

una vez has hecho la consulta con php, tienes que pasarte el resultado por el método $_POST.

yo añado en el select onchange="this.form.submit();

después de cerrar el select algo del tipo:

<script type="text/javascript">document.forms.frm.id_del_select.value ='<?php echo (isset($_POST ['a']))?$_POST ['a']:'';?>';</script>

y recojo la información del post:

<?php

if (!empty($_POST))
{
$dbconn = pg_connect('host=localhost port=5432 dbname=***** user=postgres password=****') or die ('No se conecta');

$a = $_POST['a'];


}


?>

y así no hay que refrescar toda la página.


El problema yo lo tengo para volver a estirar la información que he pasado en el siguiente select, por lo que si alguien sabe cómo mil gracias por la ayuda!
  #4 (permalink)  
Antiguo 09/04/2013, 05:07
Avatar de mariogc1992  
Fecha de Ingreso: abril-2013
Ubicación: León
Mensajes: 64
Antigüedad: 11 años
Puntos: 0
Respuesta: formulario dinamico php cambio de selects

No veras el problema es que no lanzo una consulta SQL si no que trabajo virtualmente contra un documento CSV que previamente he leido y voy arrastrando con $_POST entonces lo que quiero hacer es trabajar virtualmenete contra ese documento sin modificarlo y despues el resultado exportarlo a otro documento CSV con la tabla ya creada
  #5 (permalink)  
Antiguo 09/04/2013, 08:37
Avatar de mariogc1992  
Fecha de Ingreso: abril-2013
Ubicación: León
Mensajes: 64
Antigüedad: 11 años
Puntos: 0
Respuesta: formulario dinamico php cambio de selects

les muestro aqui parte de mi codigo que si lo ejecutan funciona:
Código:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
        
         <!-- Script para seleccionar o deseleccionar todos los checkbox -->
        
        <script language="JavaScript" type="text/JavaScript">       
            function putOn() 
            { 
                for (i = 0; i < document.forms[0].elements.length; i++) 
                { 
                document.forms[0].elements[i].checked = true; 
                } 
            } 
            function putOff() 
            { 
                for (i = 0; i < document.forms[0].elements.length; i++) 
                {       
                    document.forms[0].elements[i].checked = false; 
                }    
            } 
        </SCRIPT>
    </head>
    <body>
        <?php
        $site='http://www.heim-garten.de/plenty/api/itemShopbotExport.php?pyk=py_756c39dd9cb0c9ce025a521017cd270e&eid=22';
        $punkt=";";        
        printf("%s",$site); 
        function change($index)
        {
            $field=array();
            $field[]=$index;
            $rep=false;                       
                        if(array_search($index, $field))
                        { 
                            $rep=true;
                        }
            if ($rep) 
            { 
                document.formulario.$index.focus()
                ?>
                <script language="javascript">
                alert("Wiederholfeld");
                </script>
                <?php
                return false;
            }
        }
        function seleccionar()
            {
                $row=0;
                printf("<form name='frm' method='post' action='%s'>",$_SERVER["PHP_SELF"]);
                if (($url = fopen($GLOBALS["site"], "r")) !== FALSE) 
                {
                    printf("<table border ='1'>");        
                        while (($datos = fgetcsv($url, 100000, $GLOBALS["punkt"])) !== FALSE) {
                                $numero = count($datos);//NUMERO DE COLUMNAS
                                //echo "<p> $numero fields in line $fila: <br /></p>\n";                                  
                                printf("<tr><th>Field</th><th><INPUT onclick='if (this.checked) {putOn()} else {putOff()}' type=checkbox alue='' name=jscheckall></th></tr>");
                                for ($c=0; $c < $numero; $c++) 
                                {
                                    printf("<input type='hidden' name='name[]' value='%s' />",$datos[$c]);                                    
                                    printf("<tr><td>%s</td><td> <INPUT calss='check' TYPE='checkbox' NAME='campo[]' VALUE='%d' ID='%s' UNCHECKED></td></tr>",$datos[$c],$row,$datos[$c]);
                                    $row++;
                                }                                
                                break;
                            }
                            printf("</table>");
                            fclose($url);                            
                 }
                        printf("<br/>");
                printf("<input type='submit' name='ok' value='Anlegen' /><br />");   
                printf("</form>");
            }
            function modificar()
            {
                $cont=1;
                $name=array();
                printf("<form name='frm' method='post' action='%s'>",$_SERVER["PHP_SELF"]);
                $num=count($_POST['campo']);
                if(isset($_POST['name']))
                {
                    foreach ($_POST['name'] as $names)
                    {
                        $name[]=$names;
                        printf("<input type='hidden' name='allname[]' value='%s' />",$names);
                    }
                }
                printf("<table>");
                if(isset($_POST['campo'])) 
                {                    
                    foreach($_POST['campo'] as $fields)
                    {
                        printf("<tr>");
                        printf("<input type='hidden' name='name[]' value='%s' />",$fields);
                        printf("<input type='hidden' name='realname[]' value='%s' />",$name[$fields]);
                        printf("<td>%s</td><td> <INPUT TYPE='text' NAME='field[]' VALUE='%s' ></td>",$name[$fields],$name[$fields]);
                        printf("<td>Position: <select name='position[]' onchange='change(%d-1)'>",$cont);
                        for($i=1;$i<=$num;$i++)
                        {
                            if($i==$cont)
                                printf("<option selected='%d'>%d</option>",$i,$i);
                            else
                                printf("<option>%d</option>",$i);
                        }
                        printf("</select></td>");
                        //printf("<br/>");  
                        $cont++;
                        printf("</tr>");
                    }
                }
                else printf("Info. not found");
                printf("<table>");
                printf("<input type='submit' name='ok' value='Anlegen' />");   
                printf("</form>");
            }
            if (isset($_POST["campo"]))modificar();        
            else seleccionar(); 
?>
si lo ejecutan se les mostrara una tabla con check box y dependiendo de los que seleccionen en la siguiente pag se les mostrara los elementos marcados con un text box cn el mismo nombre y un n° q es la posicion q le qiero dar posteriormnt en la tabla que deseo exportar. Bien mi pregunta es si esas posiciones las pudo enlazar para que si cambio la posicion 1 por la 3 automaticamnt se cambie la 3 para la 1. Gracias por su colaboracion y espero alguna respuesta pronto.

Etiquetas: dinamico, formulario, select, selects
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:02.