我是ajax的新手,我认为这是一个小问题。 我想知道是否有人可以帮助我?
问题:
在我的HEAD标签中的index.php文件中,我有以下内容:
<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>
在BODY我有以下内容;提交按钮调用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"); ?>
...我发现似乎是提交(调用函数)onload的页面,而不是等待用户单击提交按钮。
我似乎无法找到解决方案,如果有人可以快速查看并提供任何建议,我将不胜感激。 请访问此URL以了解操作中的问题(右侧阅读“不幸的是,我们是......”)。这应该显示表单,等待用户输入并单击提交按钮。
http://heathrowsafeparking.co.uk
要查看单独运行且运行良好的表单(即不通过include调用),请访问此处:
http://heathrowsafeparking.co.uk/modules/mod_hspbooking/index.php
作为参考,我的“calc_days.php”文件的结束行回显了一个用户的消息,该消息显示在名为“message”的div中:
提前感谢您的任何帮助和支持。
此致
汤姆
答案 0 :(得分:0)
这似乎不是一个ajax问题,从第一个链接加载页面后没有请求,所以你假设它是自动提交是一个错误。您应该查看您的PHP代码,以检查模块如何确定表单是否已提交,因为它似乎始终在嵌入时遵循该代码路径。
您还应该为php标记您的问题。
更新:看过更多的代码后,问题就变成了Joomla模块的配置,而且确实是服务器端。
答案 1 :(得分:-1)
使用jQuery将事件附加到对象上,如:
$(document).ready(function(){
$('#ElementName')。click(function(){....你AJAX CALL HERE ...});
});