2012-02-23 99 views
1

我有这样的脚本:使用jQuery的div来加载PHP页

<script type='text/javascript' src='js/jquery-1.4.4.mi.js'></script> 
<script type='text/javascript'> 
$('.filterMonth').change(function(){ 
alert('ijijiji'); 
$.ajax({ 
url: 'ajax/filterMandays.php', 
//type: 'GET', 
success: function(data){ 
    //data is returned back 
    $('#mandayTable').html(data); 
} 
}); 

}); 
</script> 

和这个网站:

<select name ="filterMonth"> 
     <?php 
     $array_month = array("January","February","March","April","May","June","July","August","September","October","November","December"); 

     foreach($array_month as $key => $month) 
     { 
      $value_month = $key+1; 
     echo "<option value = '$value_month'>$month</option>"; 
     } 

     ?> 
     </select> 
     - 
     <select name = "filterYear" onChange = "filter(filterMonth.value, filterYear.value)"> 
     <?php 
     $curYear = date('Y'); 
     for($i = 1990; $i<=$curYear+10; $i++) 
     { 
     if($i == $curYear) 
     { 
     echo "<option value = '$i' selected = 'selected'>$i</option>"; 
     } 
     else 
     { 
     echo "<option value = '$i'>$i</option>"; 
     } 
     } 
     ?> 
     </select> 
     </td> 
     </tr> 
     </br> 
     </br> 
     <tr> 
     <div id="mandayTable"></div> 

这个PHP页面:

<?php 
include("all.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';"; 



     $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++) 
     { 
         //iterating through // check if employee 
         // // if(isset($row[])) {   } 
         $mandays_id = $rows[0]; 

         $empnum = $rows[1]; 

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

         $required_man_days = $rows[4]; 

         $firstname = $rows['month']; 

         $lastname = $rows[6]; 




         //echo approvers here are not taken 
         //<a href=\"view_team.php?id=".$empnum."\" -> for someone to view the people beneath them (like org tree) 
         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>"; 


     ?> 

脚本一旦“filterMonth”已被更改,应该基本上加载html中的div中的php页面。但它不起作用。

什么似乎是问题? :(

+1

请不要喊叫(tandu已修复此问题) – 2012-02-23 07:15:04

+0

您确定您正在浏览页面吗?当您访问ajax页面时会发生什么直接在你的浏览器中?表格打印是否正确? – 2012-02-23 07:16:38

+0

php文件的输出是什么? – 2012-02-23 07:16:42

回答

4

在你的jQuery选择器是$('.filterMonth')但你的选择框没有filterMonth类,你需要将其更改为$('select[name=filterMonth]')

为了让jQuery选择包含你的选择,你需要以确保它运行后选择元素在DOM(即:降低下来HTML),或一旦文档完成加载运行你的JavaScript,例如:

<script type='text/javascript' src='js/jquery-1.4.4.mi.js'></script> 
<script type='text/javascript'> 
    jQuery(function() { 
    // do your DOM selections here, this function only runs once the document is loaded 
    }); 
</script> 
+0

我试图改变它,但它仍然不执行jQuery。警报甚至不会出现。 :( – prukuhkoo 2012-02-23 08:01:03

+0

您是否在页面末尾运行脚本,以便在将处理程序附加到DOM之前,该选择已明确添加到DOM中? – steveukx 2012-02-23 08:03:54

+0

脚本标记位于调用它们的html标记之前 – prukuhkoo 2012-02-23 08:06:41