valor una saber procesar por pasar pasada para method hago formularios formulario form enviar ejemplos datos cómo php get parameter-passing html-form

una - pasar variables por url php get



¿Cómo mantener los valores de parámetros GET ya establecidos en el envío del formulario? (6)

Una solución más simple para mantener la URL sin cambios usando http_build_query

<form action="<?php echo $_SERVER["PHP_SELF"] . ''?''.http_build_query($_GET); ?>" ... .. ..

Tengo una URL: foo.php?name=adam&lName=scott , y en foo.php tengo un formulario que me da valores de rectangleLength & rectangleBreadth con un botón de enviar.

Cuando hago clic en este botón de enviar con acción de formulario como $_SERVER[''REQUEST_URI''] , obtengo esta URL de resultado: foo.php?rectangleLength=10&rectangleBreadth=5 (estos valores han sido cumplimentados por el usuario).

Tenga en cuenta que estoy perdiendo mi name valores anterior & lName de la URL.

¿Cómo puedo guardarlos?

Además, tenga en cuenta que tengo que volver a foo.php y si el usuario desea enviar el formulario de nuevo, los valores de longitud y amplitud deberían cambiar.


  1. En el menú (llamar a html) llamo a VendorSearch.php. variable fromvs se usa en URL.
  2. El objetivo php VendorSearch.php hará diferentes trabajos basados ​​en el valor de $_GET[''fromvs'']
  3. En VendorSearch.php, aftersession_start (),

    $srchfor =""; $fromwhat = $_GET[''fromvs'']; $_SESSION[''fromwhat''] = $fromwhat; $vs = $fromwhat;

  4. Utilice la entrada oculta para almacenar la variable pasada URL

    <div style=''position: absolute; top: 10px; left: 400px;''><input type=''hidden'' hidden=''hidden'' id=''fromvs'' name=''fromvs'' value="<?php echo $_SESSION[''fromwhat'']; ?>"></div>

  5. Pero esto

Segmento en Llamar html .... Agregar un subcontratista .... Asignar contratos de subcontratista ..... Cerrar sesión ....

Segmento en php objetivo: VendorSearch.php

<?php //VendorSearch.php //http://mted202.mtaent.org:9051/ocr/login.php rweinbau require_once(''dbinfo.php''); session_start(); $c = oci_pconnect("ocr","ocrmta","HQT4"); oci_set_client_identifier($c, $_SESSION[''username'']); $username = htmlentities($_SESSION[''username''], ENT_QUOTES); ..... $srchfor =""; $fromwhat = $_GET[''fromvs'']; $_SESSION[''fromwhat''] = $fromwhat; $vs = $fromwhat; if (isset($_POST[''srchvnd''])) { $vs = $_POST[''fromvs'']; somefunction($vs); } else { ; } ?> <body> <form class="vfrmsrch" name="vndsearch" id="vndsearch" action="VendorSearch.php?fromvs=''<?php echo $fromwhat; ?>''" method="POST"> <div style=''position: absolute; top: 10px; left: 400px;''><input type=''hidden'' hidden=''hidden'' id=''fromvs'' name=''fromvs'' value="<?php echo $_SESSION[''fromwhat'']; ?>"></div> ...... </form> ....... </body> </html> <?php function somefunction($vvs){ //$msg = "We are inf somefunction() function </a></div><br>"; // echo "<div style=''position: absolute; top: 100px; left: 10px;''><a style=''color:blue''>".$msg; $_SESSION[''fromwhat''] = $vvs; ............ oci_close($c); }


El siguiente código funciona para mi proyecto. Espero que ayude a algunos. 1. En el menú (llamar a html) Llamo a VendorSearch.php. variable fromvs se usa en URL. 2. El objetivo php VendorSearch.php hará diferentes trabajos basados ​​en el valor de $ _GET [''fromvs''] 3. En VendorSearch.php, aftersession_start (),

$srchfor =""; $fromwhat = $_GET[''fromvs'']; $_SESSION[''fromwhat''] = $fromwhat; //save value to $VS $vs = $fromwhat; 3. Use hidden input to store URL passed variable <div style=''position: absolute; top: 10px; left: 400px;''><input type=''hidden'' hidden=''hidden'' id=''fromvs'' name=''fromvs'' value="<?php echo $_SESSION[''fromwhat'']; ?>"></div> 4. But this thie field''s value may lost after clicking button "srchvnd". So use a function to reset $_SESSION[''fromwhat'']; if (isset($_POST[''srchvnd''])) { $vs = $_POST[''fromvs'']; somefunction($vs); } -----------------Source code---------------------- Segment in Calling html .... <body> <div style=" position: absolute; top: 1px; left: 5px; height:740px; width:205px; border-radius: 10px;" > <!-- Start css3menu.com BODY section --> <ul id="css3menu1" class="topmenu"> <li class="topfirst"><a href="VendorSearch.php?fromvs=V" target="I1" style="width:183px;">Add a Subcontractor </a></li> .... <li class="topmenu"><a href="VendorSearch.php?fromvs=S" target="I1" style="width:183px;">Assign Subcontractor Contracts</a></li> ..... <li class="toplast"><a href="login.php" target="_self" style="width:183px;">Log Out</a></li> </ul> .... </div> Segment in target php: VendorSearch.php <?php //VendorSearch.php //http://mted202.mtaent.org:9051/ocr/login.php rweinbau require_once(''dbinfo.php''); session_start(); $c = oci_pconnect("ocr","ocrmta","HQT4"); oci_set_client_identifier($c, $_SESSION[''username'']); $username = htmlentities($_SESSION[''username''], ENT_QUOTES); ..... $srchfor =""; $fromwhat = $_GET[''fromvs'']; $_SESSION[''fromwhat''] = $fromwhat; $vs = $fromwhat; if (isset($_POST[''srchvnd''])) { $vs = $_POST[''fromvs'']; somefunction($vs); } else { ; } ?> <body> <form class="vfrmsrch" name="vndsearch" id="vndsearch" action="VendorSearch.php?fromvs=''<?php echo $fromwhat; ?>''" method="POST"> <div style=''position: absolute; top: 10px; left: 400px;''><input type=''hidden'' hidden=''hidden'' id=''fromvs'' name=''fromvs'' value="<?php echo $_SESSION[''fromwhat'']; ?>"></div> ...... <td><input type="submit" class="slbt" name="srchvnd" id ="srchvnd" vaue="Search"></input></td> ...... </form> ....... </body> </html> <?php function somefunction($vvs){ //$msg = "We are inf somefunction() function </a></div><br>"; // echo "<div style=''position: absolute; top: 100px; left: 10px;''><a style=''color:blue''>".$msg; $_SESSION[''fromwhat''] = $vvs; ............ oci_close($c); }


Una vez, necesitaba ordenar los resultados en una tabla para mantener los resultados de búsqueda provenientes de GET. Me gustó eso

unset($_GET[''sort'']); // sort param is removed, otherwise there will be created many sort params $url = http_build_query($_GET); echo "<a href=''?".$url."&sort=title''>Title</a>"; echo "<a href=''?".$url."&sort=author''>Author</a>";


Puede agregar dos campos ocultos en el formulario en el primer sitio de destino, blabla.php en su caso:

<form ...> <input type="hidden" name="name" value="<?php echo htmlspecialchars($_GET[''name'']);?>"> <input type="hidden" name="lName" value="<?php echo htmlspecialchars($_GET[''lName'']);?>"> <!-- rest of the form here --> </form>

Para una solución dinámica, use un ciclo foreach:

<?php foreach($_GET as $name => $value) { $name = htmlspecialchars($name); $value = htmlspecialchars($value); echo ''<input type="hidden" name="''. $name .''" value="''. $value .''">''; } ?>

Puede considerar bloquear el enfoque dinámico en una lista de claves posibles conocidas:

<?php $keys = array(''name'', ''lName'', ...); foreach($keys as $name) { if(!isset($_GET[$name])) { continue; } $value = htmlspecialchars($_GET[$name]); $name = htmlspecialchars($name); echo ''<input type="hidden" name="''. $name .''" value="''. $value .''">''; } ?>


Hay maneras diferentes de hacer esto. Todos ellos escriben los parámetros que reciben en un archivo, memoria o base de datos y los recuperan más tarde con una clave

El método más fácil es algo así como una variable de sesión: http://php.net/manual/en/features.sessions.php

La configuración principal es algo como esto (precaución: es un código no seguro, asegúrese de que solo agrega las variables de sesión que desea conservar y desinfecte la entrada del usuario):

<?php session_start(); foreach ($_GET as $key=>$value) { $_SESSION[$key]=>$value; } ?>

y ahora, siempre que el usuario no cierre el navegador, puede acceder a estas variables con $_SESSION[varname];