Formulario dirigido a iFrame en una página diferente
Frecuentes
Visto 2,088 veces
1
para un cliente que insiste en usar su configuración actual, tiene un formulario que, al enviarlo, carga un archivo asp en un iframe.
Como solo he estado trabajando en este campo en los últimos años, tengo muy poca experiencia en el uso de iFrames o ASP, por lo que agradecería mucho cualquier ayuda que pudiera brindarme.
El formulario está en sidebar.php...
<form method="post" action="http://www.vebra.com/home/quick/PFrefine.asp" name="searchform">
<dl id="property_search">
<dt class="bord">Bedrooms</dt>
<dd><select name="bed" class="type1 Selectrooms">
<option selected="selected" value="1">0</option>
<option value="2">2</option>
<option value="3">2</option>
<option value="4">3</option>
<option value="5">4</option>
<option value="6">5</option>
</select>
</dd>
<dt class="bord">Minimum Price</dt>
<dd><select class="type2 SelectPrices" name="lop">
<option value="0" selected>£0</option>
<option value="25000">£25,000</option>
<option value="50000">£50,000</option>
<option value="75000">£75,000</option>
<option value="100000">£100,000</option>
<option value="125000">£125,000</option>
<option value="150000">£150,000</option>
<option value="175000">£175,000</option>
<option value="200000">£200,000</option>
<option value="225000">£225,000</option>
<option value="250000">£250,000</option>
<option value="275000">£275,000</option>
<option value="300000">£300,000</option>
<option value="325000">£325,000</option>
<option value="350000">£350,000</option>
<option value="375000">£375,000</option>
<option value="400000">£400,000</option>
<option value="500000">£500,000</option>
<option value="600000">£600,000</option>
<option value="700000">£700,000</option>
<option value="800000">£800,000</option>
<option value="900000">£900,000</option>
<option value="1000000">£1,000,000</option>
<option value="2000000">£2,000,000</option>
<option value="3000000">£3,000,000</option>
<option value="4000000">£4,000,000</option>
<option value="5000000">£5,000,000</option>
<option value="6000000">£6,000,000</option>
</select>
</dd>
<dt class="bord">Maximum Price</dt>
<dd><select name="hip" class="type3 SelectPrices">
<option value="25000">£25,000</option>
<option value="50000">£50,000</option>
<option value="75000">£75,000</option>
<option value="100000">£100,000</option>
<option value="125000">£125,000</option>
<option value="150000">£150,000</option>
<option value="175000">£175,000</option>
<option value="200000">£200,000</option>
<option value="225000">£225,000</option>
<option value="250000">£250,000</option>
<option value="275000">£275,000</option>
<option value="300000">£300,000</option>
<option value="325000">£325,000</option>
<option value="350000">£350,000</option>
<option value="375000">£375,000</option>
<option value="400000">£400,000</option>
<option value="500000">£500,000</option>
<option value="600000">£600,000</option>
<option value="700000">£700,000</option>
<option value="800000">£800,000</option>
<option value="900000">£900,000</option>
<option value="1000000">£1,000,000</option>
<option value="2000000">£2,000,000</option>
<option value="3000000">£3,000,000</option>
<option value="4000000">£4,000,000</option>
<option value="5000000">£5,000,000</option>
<option selected value="6000000">£6,000,000+</option>
</select>
</dd>
<dt>Regions</dt><dd><img src="images/spacer.gif" alt="" /></dd>
<dt><input type="checkbox" name="cou" id="couHertfordshire" value="43"/></dt><dd>Hertfordshire</dd>
<dt><input type="checkbox" name="cou" id="couLondonNorth" value="126" /></dt><dd>London, North</dd>
<dt><input type="checkbox" name="cou" id="couLondonNorthWest" value="127" /></dt><dd>London, North West</dd>
<input type="hidden" name="slo" value="undefined" />
<input type="hidden" name="fid" value="894" />
<input type="hidden" name="bid" value="0" />
<input type="hidden" name="dbt" value="1" />
<input type="hidden" name="nre" value="undefined" />
<input type="hidden" name="thu" value="undefined" />
<input type="hidden" name="vto" value="undefined" />
<input type="hidden" name="ord" value="undefined"/>
<input type="hidden" name="nba" value="undefined" />
<dt><input type="submit" class="search_now" value="Find Property" formtarget="hello" /></dt><dd><img src="images/spacer.gif" alt="" /></dd>
</dl>
</form>
Y la página de resultados quiero estar en test.php...
<iframe width="583" height="500" name="hello">iframe</iframe>
Desafortunadamente, no tengo acceso al archivo del controlador ASP.
Básicamente, cuando completa el formulario en la barra lateral y hace clic en el botón Enviar, quiero que el navegador redirija a la página de resultados y cargue el iframe con los resultados.
¿Es eso posible?
4 Respuestas
0
Si la página en el iFrame es capaz de aceptar datos GET y POST, puede ENVIAR los datos a la página que contiene el iFrame y luego usar el idioma de su elección para agregarlo a la etiqueta src del iFrame como una cadena de consulta.
Alternativamente, si la página en el iFrame solo acepta datos POST, por ejemplo, porque quien lo escribió ha impedido que acepte datos GET por razones de seguridad (percibidas), puede usar el idioma de su elección para escribir otro formulario en la página de destino que contiene el iFrame, luego envíelo automáticamente (usando JavaScript) al iFrame, habiendo establecido que el objetivo de ese formulario sea el iFrame. (Tenga en cuenta que esto es sutilmente diferente del ejemplo anterior de JQuery, que usa la cadena de consulta).
Este es un ejemplo de la primera solución anterior:
Formulario en primera página:
<form name="frmPost" method="post" action="test_iframe_post_target.php">
<input type="hidden" name="actionid" value="2" />
<input type="hidden" name="qy" value="1" />
<input type="hidden" name="pid" value="123" />
</form>
<p><a href="javascript:document.frmPost.submit();">Submit Form</a></p>
Página de destino:
<?php
$lngAction = $_POST["actionid"];
$lngQy = $_POST["qy"];
$lngPID = $_POST["pid"];
?>
<p>This is the target page. Action is: <?php echo $lngAction; ?></p>
<iframe name="test_iframe" width="900" height="320" src="test_iframe_post_iframe.php?action=<?php echo $lngAction; ?>&qy=<?php echo $lngQy; ?>&pid=<?php echo $lngPID; ?>" border="0" frameborder="0" align="center" marginwidth="1" marginheight="1" target="_top"></iframe>
iFrame:
<p>This is the iFrame. Action is: <?php echo $lngAction; ?>; Qy is: <?php echo $lngQy; ?>; PID is: <?php echo $lngPID; ?>.</p>
Respondido 12 Feb 14, 12:02
0
Es posible, solo usa ajax para publicar los datos del formulario. todo bajo tu control. disfrutar.
contestado el 03 de mayo de 12 a las 12:05
0
Aquí hay un ejemplo del uso de JavaScript y jQuery para leer un formulario y modificar la URL de un iframe en consecuencia:
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<form id="target" action="javascript:return false;">
<input type="text" value="http://www.ftd.de" />
<input type="submit" value="Go" />
</form>
<iframe id="iframe1" src="javascript:false;"></iframe>
<script>
$('#target').submit(function() {
$('#iframe1').attr('src', $("input:first").val());
});
</script>
</body>
Demo en vivo:
contestado el 03 de mayo de 12 a las 13:05
Gracias por tu ayuda lo conseguí! :D - usuario1372359
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php javascript forms iframe or haz tu propia pregunta.
¡Ay el horror! Tratar
page.php#iframe_id
como el objetivo. - Madara's Ghost