2012-02-23 9 views
1

でPHPページをロードするためのjQueryを使用した:私はこのスクリプトを持っているのdiv

<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> 

このHTML:

<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

SHOUTないでください(tandu:たとえば、またはドキュメントの読み込みが完了したら、あなたのJavaScriptを実行します。Select要素は、DOM(HTMLダウン下IE)になった後、それが実行されることを確認します –

+0

あなたは本当にあなたがページに当っていますか?ajaxのページにアクセスするとどうなりますか?あなたのブラウザで直接?テーブルは正しく印刷されていますか? –

+0

phpファイルの出力は何ですか? –

答えて

4

あなたのjQueryのセレクタは$('.filterMonth')ですが、あなたの選択ボックスがfilterMonthクラスを持っていません。あなたは$('select[name=filterMonth]')にそれを変更する必要があります。

jQueryのセレクタは、あなたの選択が含まれているようにするために、次のものが必要

<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

+0

ハンドラをアタッチする前に、選択が確実にDOMに追加されるように、ページの最後にスクリプトを実行していますか? – steveukx

+0

スクリプトタグは、呼び出されるhtmlタグの前に配置されます。 – prukuhkoo