Нужно, чтобы веб-форма передавала переменные в часть src элемента iframe, расположенного на странице 2. - PullRequest
0 голосов
/ 22 февраля 2011

Нуб ищет помощь. Я медленный ученик.

У меня есть небольшая форма на моей первой странице, которая запрашивает "дату прибытия" и "дату отъезда". Мне нужно захватить результаты этих двух вопросов и передать их в часть src iframe, расположенную на странице, которая появляется, когда нажимается «submit».

Src НЕ находится на том же сервере. Это выглядит примерно так: www.bob.com/res.php3?day_a=VAR1&month_a=VAR2&day_d=VAR3&month_d=VAR4&

Если вы можете мне помочь, я буду признателен за все, что вы можете предложить, я начинаю с нуля.

Код на странице 1 заимствован и выглядит примерно так:

    <script language="javascript">
function changeIFrame() {
   window.open('http://www.bob.com/res3.php');
   }
/***********************************************
* Drop Down Date select script- by JavaScriptKit.com
* This notice MUST stay intact for use
* Visit JavaScript Kit at http://www.javascriptkit.com/ for this script and more
***********************************************/

var monthtext=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec'];

function populatedropdown(dayfield, monthfield, yearfield){
var today=new Date()
var dayfield=document.getElementById(dayfield)
var monthfield=document.getElementById(monthfield)
var yearfield=document.getElementById(yearfield)
for (var i=0; i<31; i++)
dayfield.options[i]=new Option(i, i+1)
dayfield.options[today.getDate()]=new Option(today.getDate(), today.getDate(), true, true) //select today's day
for (var m=0; m<12; m++)
monthfield.options[m]=new Option(monthtext[m], monthtext[m])
monthfield.options[today.getMonth()]=new Option(monthtext[today.getMonth()], monthtext[today.getMonth()], true, true) //select today's month
var thisyear=today.getFullYear()
for (var y=0; y<20; y++){
yearfield.options[y]=new Option(thisyear, thisyear)
thisyear+=1
}
yearfield.options[0]=new Option(today.getFullYear(), today.getFullYear(), true, true) //select today's year
}
</script>

<form action="" name="someform">
<select id="day_a">
</select> 
<select id="month_a">
</select> 
<select id="year_a">
</select> 
<input type="button" onclick="changeIFrame();" />
</form>

<script type="text/javascript">

//populatedropdown(id_of_day_select, id_of_month_select, id_of_year_select)
window.onload=function(){
populatedropdown("day_a", "month_a", "year_a")
}
</script>

Я пытался использовать код Боба-разрушителя на странице 2, чтобы получить эти значения, но безуспешно.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Исходя из вашего комментария из ответа Спиди, "iframe расположен на второй странице, которая предназначена для загрузки при нажатии кнопки.", Это концептуально точно так же, как способ javascript, за исключением работыс posted значениями, доступными для сервера, и первоначальной сборкой страницы ...

<?php

// get UNIX TIMESTAMPS of client's posted form fields
$arrivalDate = strtotime(trim($_POST['arrivalDate']));
$departureDate = strtotime(trim($_POST['departureDate']));
if (!$arrivalDate OR !$departureDate)
    // you will need better validation and error handling than this though
    die("These aren't valid dates."); 

// parse month/day numeric values
$day_a = date('n', $arrivalDate);
$month_a = date('j', $arrivalDate);
$day_d = date('n', $departureDate);
$month_d = date('j', $departureDate);

// here echo HTML or escape out of PHP to begin building your page


// draw iframe using parsed values
echo "<iframe src=\"www.bob.com/res.php3?day_a=" . $day_a . "&month_a=" 
    . $month_a . "&day_d=" . $day_d . "&month_d=" . $month_d . "\"></iframe>";


// here echo more HTML or escape out of PHP to finish building your page

?>

Обратите внимание на последнее эхо: оно небрежное, и вы могли бы лучше игнорировать всю эту конкатенацию, но я разбил ее на сегментыпросто чтобы лучше показать, где PHP переменные должны быть размещены.

0 голосов
/ 22 февраля 2011

Вы можете изменить атрибут src в iframe следующим образом:

<script language="javascript">
function changeIFrame() {
   var day_a = document.getElementById("day_a").value;
   var month_a = document.getElementById("month_a").value;
   var newSrc = "www.bob.com/res.php?day_a=" + day_a + "&month_a=" + month_a;
   document.getElementById("my_iframe").src = newSrc;
}
</script>

<input id="day_a" type="text" />
<input id="month_a" type="text" />
<input type="button" onclick="changeIFrame();" />

<iframe id="my_iframe" src=""></iframe>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...