Я новичок в ajax и у меня возникла небольшая проблема.Мне было интересно, сможет ли кто-нибудь помочь мне?
Проблема:
В моем файле index.php в теге HEAD у меня есть следующее:
<script type="text/javascript">
var time_variable;
function getXMLObject() //XML OBJECT
{
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") // For Old Microsoft Browsers
}
catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") // For Microsoft IE 6.0+
}
catch (e2) {
xmlHttp = false // No Browser accepts the XMLHTTP Object then false
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest(); //For Mozilla, Opera Browsers
}
return xmlHttp; // Mandatory Statement returning the ajax object created
}
var xmlhttp = new getXMLObject(); //xmlhttp holds the ajax object
function ajaxFunction() {
var getdate = new Date(); //Used to prevent caching during ajax call
if(xmlhttp) {
var name = document.getElementById("name");
var date1 = document.getElementById("date1");
var date2 = document.getElementById("date2");
xmlhttp.open("POST","http://heathrowsafeparking.co.uk/modules/mod_hspbooking/calc_days.php",true); //calling testing.php using POST method
xmlhttp.onreadystatechange = handleServerResponse;
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send("name=" + name.value + "&date1=" + date1.value + "&date2=" + date2.value);
}
}
function handleServerResponse() {
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
document.getElementById("message").innerHTML=xmlhttp.responseText; //Update the HTML Form element
}
else {
alert("Error during AJAX call. Please try again");
}
}
}
</script>
В теле у меня есть следующее;кнопка submit вызывает функцию onclick:
<form id="hspcalc">
<table width="162" border="0" align="center" cellpadding="2" cellspacing="2" id="quoter" style="width:162px; margin:auto; font-family:verdana; font-size: 12px; background-color:#293a4b; color:#fff;"
>
<tr>
<td height="" align="center" valign="top" style="padding-left:;">
<p style="margin-top:;">
<img src="http://heathrowsafeparking.co.uk/images/stories/getquote_but.png" border="0" /><br />
<div id="message" name="message"></div>
Your Name:<br />
<input name="name" type="text" class="rounded" id="name" />
<br />
<br /> Date of Departure:<br />
<input name="date1" type="text" class="rounded" id="date1" onfocus="showCalendar('',this,this,'','holder1',0,30,1)" value="" />
<br />
<br />
Date of Arrival (Return):<br />
<input name="date2" type="text" class="rounded" id="date2" onfocus="showCalendar('',this,this,'','holder2',0,30,1)" value="" />
<br />
<input type="button" value="Submit" onClick="ajaxFunction();" />
</p>
</td>
</tr>
</table>
</form>
Однако это хорошо работает, когда я вызываю файл index.php через включение, например:
<?php include("modules/mod_hspbooking/index.php"); ?>
... iнайти то, что кажется страницей, отправляющей (вызывающей функцию) onload, вместо того, чтобы ждать, пока пользователь нажмет кнопку отправки.
Кажется, я не могу найти решение и буду признателен, если кто-нибудь сможетиметь быстрый взгляд и предоставление любых рекомендаций.Пожалуйста, посетите этот URL для обнаружения проблемы в действии (справа, читая «к сожалению, мы ...»). Это должно отобразить форму, ожидая ввода пользователя и нажатия кнопки отправки.
http://heathrowsafeparking.co.uk
Чтобы увидеть, что форма работает автономно и работает хорошо (т.е. без звонка через включение), пожалуйста, посетите здесь:
http://heathrowsafeparking.co.uk/modules/mod_hspbooking/index.php
Для справки: закрывающая строка моего файла "calc_days.php" отображает сообщение для пользователя, которое отображается в div с именем "message":
Заранее благодарен за любую помощь и поддержку.
С уважением
Том