2012-02-23 8 views
1

IE를 사용하고 있는데 드롭 다운이 변경되면 데이터베이스에서 값이있는 테이블을 표시하는 간단한 AJAX를 수행해야합니다. 여기IE에서 AJAX를 사용하는 방법

<script type="text/javascript"> 
function getXML() 
{ 
var req; 
try { 
    req = new XMLHttpRequest(); 
} catch (trymicrosoft) { 
    try { 
     req = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (othermicrosoft) { 
     try { 
     req = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (failed) { 
     req = null; 
     } 
    } 
} 

if (!req){ 

    return null; 
} else { 
    return req; 
} 
} 
function filter(month, year) 
{ 


if(getXML()){ 
var xmlhttp = getXML(); 
xmlhttp.onreadystatechange=function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
document.getElementById("mandayTable").innerHTML=xmlhttp.responseText; 
    } 

} 
xmlhttp.open("GET","ajax/filterMandays.php?m="+month+"&y="+year,true); 
xmlhttp.send(); 
} else { 
alert("Error initializing XMLHttpRequest!"); 
} 
} 

</script> 

내 아약스 PHP

<?php 

     $q = "SELECT md.mandays_id,md.employeenum,md.month,md.year,md.required_man_days,d.firstname,d.lastname 
     FROM tbl_mandays md,tbl_employee_details d 
     WHERE md.active = '1' 
     AND md.employeenum = d.employeenum 
     AND md.month = '10';"; //employee_details WHERE approver = 0" 



     $res = $db->Execute($q); 

     echo "<table border = 1>"; 

     echo "<tr><th>Employee Number</th><th>First Name</th><th>Last Name</th><th>Month-Year</th><th>Required Man Days</th><th>Edit/Delete</th></tr>"; 

    /while($rows = $res->FetchRow()) 
     for($i=0;$i<5;$i++) 
     { 
                $mandays_id = $rows[0]; 

         $empnum = $rows[1]; 

         $month_year = $rows[2] ."-" .$rows[3]; 

         $required_man_days = $rows[4]; 

         $firstname = $rows[5]; 

         $lastname = $rows[6]; 

                echo "<tr><td>".$empnum . "</td><td>".$firstname ."</td><td>".$lastname ."</td><td>" . $month_year ."</td><td>" .$required_man_days . "</td><td width = \"200\" align = \"center\"><a href = 'edit_mandays.php?mandays_id=$mandays_id');'>Edit/Delete</a></td></tr>"; 
     } 



     echo "</table>"; 

     ?> 

문제가 첫 번째 "onchange를은"그것은 아무것도하지 않습니다에 있다는 것입니다 수 있습니다 :

여기 내 스크립트입니다. 두 번째 "ONCHANGE"에서 PHP 코드의 테이블 헤더가 에코됩니다.

또한 질문없이 루프를 변경하고 ($ i = 0; $ i < 5; $ i ++) 루프를 변경하여 qvalues를 "1"로 표시되도록 변경했지만 여전히주의해야합니다. 그 loo [그리고 그것을 표시합니다.

무엇이 문제인가 보입니까? :(

+0

"문제가있는 것 같지 않습니다."문제가있는 것 같습니까? 무슨 문제인가. 실제 문제에 대한 설명이 없습니다. – epascarello

+0

@epascarello, 문제는 첫 번째 "ONCHANGE"에서 아무 것도하지 않는다는 것입니다. 두 번째 "ONCHANGE"에서 PHP 코드의 테이블 헤더가 에코됩니다. 또한 쿼리없이 루프를 ($ i = 0; $ i <5; $ i ++)로 변경하고 qvalues를 "1"로 표시되도록 변경했지만 여전히주의해야합니다. [그것을 표시하십시오. – prukuhkoo

+2

당신은 jquery를 조사해야합니다. 브라우저를 통해 일관성있게 만들고 꽤 간단합니다 ... – bryanmac

답변

1

다운로드하여 귀하의 웹 사이트에 대한 jQuery를 사용 http://docs.jquery.com/Downloading_jQuery#Download_jQuery

다음 코드는 다음과 같이 될 것입니다 :

$('.mydropdown').change(function(){ 
    //get values for month, year 
    $.ajax({ 
    url: "ajax/filterMandays.php?m="+month+"&y="+year, 
    type: "GET", 
    success: function(data){ 
     //data is returned back 
     $('#mandayTable').html(data); 
    } 
    }); 

}); 
+0

이것은 좋은 제안입니다 (jQuery는 많은 클리너와 초록을 많이 가지고 있습니다. 브라우저 사이의 불일치에 대해)하지만 반드시 도움이되지는 않습니다. jQuery로 코드를 정리하는 것 외에도 Fiddler (또는 비슷한 것)를 호출하여 실제로 호출이 어떻게 진행되고 있는지 확인할 수 있습니다. –

관련 문제