2011-02-18 101 views
0

我是ajax的新手,我認爲這是一個小問題。 我想知道是否有人能幫助我?頁面加載時發送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> 

在身,我有以下;提交按鈕調用該函數的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,而不是等待用戶點擊提交按鈕。

我似乎找不到解決方案,並希望任何人都能通過快速瀏覽並提供任何建議來幫助您。 請訪問此網址以查看問題的實際情況(右邊的閱讀內容「不幸,我們是......」)。這應顯示錶單,等待用戶輸入,然後單擊提交按鈕。

http://heathrowsafeparking.co.uk

要查看的形式運行獨立的,並且運行良好(即不通過包括調用),請點擊這裏查看:

http://heathrowsafeparking.co.uk/modules/mod_hspbooking/index.php

供參考我的「calc_days收線。 php「文件回顯一個消息,顯示在一個名爲」message「的div中:

在此先感謝您的任何幫助和支持。

問候

湯姆

+0

錯誤出現在您未發佈的某些代碼中。它似乎是一些服務器端PHP代碼的邏輯中的一個突破,如果沒有看到這一點,將無法確定。 – leebriggs 2011-02-18 20:22:32

+0

H我真的非常感謝你的反饋,至此..如果我想提供所有相關文件壓縮,有沒有機會願意再看一看? – 2011-02-18 20:33:51

+0

湯姆,如果你想通過電子郵件發送lee @ ...和我的個人資料中的網站域名。我注意到你也是倫敦的承包商,所以如果我能在5-10分鐘內查到這些東西,請不要介意。 – leebriggs 2011-02-18 21:05:05

回答

0

這似乎不是一個Ajax問題,從第一個鏈接加載頁面後沒有請求發生,所以你認爲它是自動提交的假設是一個錯誤。您應該查看您的php代碼,以檢查模塊如何確定表單是否已提交,因爲它似乎始終在嵌入時遵循該代碼路徑。

你也應該標記你的問題爲PHP。

更新:看到了更多的代碼,問題原來是Joomla模塊的配置,並且確實是服務器端。

-1

使用jQuery附加事件類似的對象:

$(文件)。就緒(函數(){

$( '#的ElementName' ).click(function(){.... You AJAX CALL HERE ...});

});