2014-01-25 4 views
1

저는 AJAX 및 PHP 프로그래밍 초보자입니다. 나는 이것이 아주 간단하다고 믿지만, 나는 어렵다.형태로 PHP와 AJAX를 사용하여 날짜를 보내고 정보를 검색하십시오.

내가 원하는 것은 사용자가 날짜를 선택하고 (jquery date picker 사용) OK 버튼을 클릭하는 것입니다.

양식은 query.php (Ajax를 통해) 페이지를 호출합니다. query.php는 날짜를 확인합니다. 날짜가 데이터베이스에 레지스트리가있는 경우 query.php는 index.php로 채워진 테이블을 반환합니다.

내가이 예를 따라 내 스크립트를 기반으로 한 :

그러나 예 http://www.w3schools.com/php/php_ajax_database.asp은, 트리거 이벤트 (onchange를 = "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

관련 문제