2014-01-25 61 views
1

我是AJAX和PHP編程的新手。 我相信這很簡單,但我很難。使用PHP和AJAX發送日期和檢索信息的形式

我需要的是用戶選擇一個日期(使用jQuery日期選擇器),然後單擊確定按鈕。

表單將調用頁面query.php(通過Ajax)。 query.php將檢查日期。 如果日期在數據庫中有註冊表,query.php將返回一個爲index.php填充的表。

我已經根據根據這個例子我的腳本:http://www.w3schools.com/php/php_ajax_database.asp

但在這個例子中,觸發器是事件(平變化= 「showUser(THIS.VALUE)」)。 我需要在提交表單後調用AJAX函數。我使用(),但是當我嘗試獲取日期使用$ q = $ _GET ['q'];該值爲空白。

的index.php(相關信息):

<!DOCTYPE html> 

<html lang='pt-BR'> 
<head> 
    <script> 
    function showUser(str) 
    { 
    if (str=="") 
     { 
     document.getElementById("txtHint").innerHTML=""; 
     return; 
     } 
    if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
    else 
     {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
     } 
     } 
    xmlhttp.open("GET","checar_data.php?q="+str,true); 
    xmlhttp.send(); 
    } 
    </script> 
</head> 
<body> 

    <form id="dateForm" onsubmit="showUser(); return false;" method="GET"> 
     Data: 
     <input name="datepicker" id="datepicker" type="text" size="10" maxlength="8" /> 
     <input name="OK" value="OK" type="submit" > 
    </form>   
    <div id="txtHint"><b>Person info will be listed here.</b></div> 

</body> 
</html> 

query.php:

<?php 
$q = intval($_GET['q']); 

echo "$q -> bla bla"; 


?> 

我怎樣才能解決這個問題?

回答

2

query.php

變化

<?php 
$q = $_GET['q']; 
echo "$q"; 
?> 

發送數據頁是不正確的

xmlhttp.open("GET","checar_data.php?q="+str,true); 

變化

xmlhttp.open("GET","query.php?q="+str,true); 

你的函數有一個參數,並留下空 形式宣佈在啓動時,

變化從

<form id="dateForm" onsubmit="showUser(); return false;" method="GET"> 

<form id="dateForm" onsubmit="showUser(this.datepicker.value); return false;" method="GET"> 
+1

我糾正表單提交方法和運作非常良好。爲什麼舊的方式不起作用? tks –

+2

我解釋了所有錯誤的行 – 123

+2

我不知道什麼是舊的方式:)。我也是新手,但'showUser()'有一個參數發送到query.php頁面,而在舊代碼中,您不向此參數發送任何內容。 – 123