0

Hi, I am running the scripts below which should return a string containing a URL.
So far, it cannot find the form contents in Firefox, but displays the non-dynamic data such as ?Location=. It won't work at all in IE.

Can any one help?
This is the form:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript" type="text/javascript" src="/js/common.min.js?1266866725">
</script>
<script src="calendar.js" type="text/javascript"></script>
<script src="calendar1.js" type="text/javascript"></script>
<link href="calendar.css" type="text/css" rel="stylesheet" />
<style>
#container	{
	background-color:#C60;
	color:#FFF;
	font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
	padding:15px;
}
#subtitle	{
	font-style:italic;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Local Session Search</title>
</head>

<body>
<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction(){
	var ajaxRequest;  // The variable that makes Ajax possible!
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4 && ajaxRequest.status==200){
			document.getElementById("output").innerHTML=ajaxRequest.responseText;
		}
	}
	ajaxRequest.open("GET", "text.php", true);
	ajaxRequest.send(null); 
}

//-->
</script>
<div id="container">
	<div id="title">
      <h1>Marketing Session Search</h1>
      <span id="subtitle">Create a link for the nearest sessions in a specified area.
      </span>
      <br />
      Would you like to include this in an email? Click here to access the <span style="font-weight:bold;">mailer</span>.
    </div>
    <div name="form1">
    	Enter the details onto the form.
        <form method="get" name="formdata" id="formdata" onChange="ajaxFunction();">
            <table style="background-color:#FC6; color:#900">
            	<tr>
                	<td>Area</td>
                    <td>
                      <select name="area" id="area" size="5" >
                        <option value="Chapeltown" selected>North Sheffield</option>
                        <option value="Barnsley">Barnsley</option>
                        <option value="Kimberworth">North Rotherham</option>
                        <option value="Doncaster">Doncaster</option>
                        <option value="Scunthorpe">Scunthorpe</option>
                        <option value="Grimsby">Grimsby/Cleethorpes</option>
                        <option value="Lincoln">Lincoln</option>
                        <option value="Skegness">Skegness</option>
                        <option value="Spalding">Boston/Spalding</option>
                        <option value="OT">Other</option>
                      </select>
                     </td>
                   </tr>
                   <tr>
                     <td>Start Date:</td>
                     <td><input type="text" name="date" id="date" value="yyyymmdd"/></td>
                   <tr>
                   <tr>
                     <td>Finish Date:</td>
                     <td><input type="text" name="fdate" id="fdate" value="yyyymmdd"/>
						<!--
                        <script type="text/javascript">
                        onfocus(fdate))	{
							document.write("date")
						}
                        </script>
                        -->
                     </td>
                   </tr>
                   <tr>
                   	<td>Include Weekends?</td>
                    <td><input name="wknd" type="radio" value="MTWHFSU" checked />Yes	
                  		<input name="wknd" type="radio" value="MTWHF" />No	
                    	<br />
                       	<input name="wknd" type="radio" value="SU" />Weekends only
                     </td>
                  </tr>
              </table> 
              
        </form>
        Your query reads:<span id="output"></span>
      
  </div>
</div>
</body>
</html>

and this is the PHP:

<?php
	// details sent from form
			
			$area=$_GET["area"];
			$sdate=$_GET["date"];
			$fdate=$_GET["date"];
			$wkend=$_GET["wkend"];
				
	// process
			$area = "?Location=".$area;
			$sdate = "&AfterDate=".$sdate;
			$fdate = "&BeforeDate=".$fdate;
			$wkend = "&Days=".$wkend;
				
	// construct text
			$common = "http://www.brew.co.uk/SessionSearcher/ShowResults.aspx";
			$sweep = $common.$area.$sdate.$fdate.$wkend;
			echo $sweep;
	?>
2
Contributors
1
Reply
2
Views
7 Years
Discussion Span
Last Post by BlueIceStudios
0

try replacing this

ajaxRequest.open("GET", "text.php", true);

with this

ajaxRequest.open("GET",url,true);

and above that add

var url="text.php";
url=url+"?Location"+area;
url=url+"&AfterDate"+sdate;
url=url+"&BeforeDate"+fdate;
url=url+"&Days"+wkend;

so the ending result is now

var url="text.php";
url=url+"?Location"+area;
url=url+"&AfterDate"+sdate;
url=url+"&BeforeDate"+fdate;
url=url+"&Days"+wkend;
ajaxRequest.open("GET",url,true);

im not to entirely sure this is correct, try it. Im a jQuery guy. But you see what im doing, you need to pass the variables with the ajax, otherwise you are just sending the text.php page.

Typically with jquery this is as easy as

$.get("text.php", {
		Location: $('#area').val(),
		AfterDate: $('#sdate').val(),
                BeforeDate: $('#fdate').val(),
                Days: $('#wkend').val()
      }

Edited by BlueIceStudios: n/a

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.