jQuery .trigger()单独<select> menu </select>

时间:2012-09-13 16:53:44

标签: php javascript jquery html

我有一个jQuery / AJAX函数,当从<select>菜单触发时,将数据发布到php查询并返回结果。结果放在<td><label class=count>与我表格中<select>菜单相同的行中。当选择菜单被更改时,该功能正常工作,但我也想在页面加载时触发此功能。我尝试在代码的末尾使用.trigger(change);,但所有这一切都是在最后一行的<td><label class=count>中放置结果(本例中为2,因为只有两个表行)而不是放置导致父行的那个单元格。有人可以帮助我在页面加载时运行该函数,但结果与触发结果的选择菜单在同一行的<td><label class=count>

这是jQuery:

<script type="text/javascript"> 
$(document).ready(function(){

$('.typeval').change(function(){
    var movement    =  $(this).val();
    var client_id   = $(this).parent().siblings().find('.clientval').val();
    var class_id    = <? echo $class_id; ?>;
        $count      = $(this).parents('tr').find('label.count');

$.ajax({ 
  type: "POST",
  url: "movement_count.php",
  data: {movement:movement, client_id:client_id, class_id:class_id},
  dataType: "json", 
  success:(function(output) {

      $.each(output, function(index, value){
      //alert(value);
      $count.append(output[index]);
      }) // each

   }) // success

}); // ajax

  }); // .typeval

});  // document

</script>   

以下是HTML表的一部分:

 <tr>
    <td><input type="hidden" name="client_id[]" class="clientval" value="1"></td>
    <td><input type="hidden" name="order[]" value="1A">1A</td>
    <td><select name="movement[]" width=200 class="typeval"></select></td>
    <td><input type="hidden" name="rest[]" value="Rest">Rest</td>
    <td><label class="count"></label></td>
</tr>

<tr>
   <td><input type="hidden" name="client_id[]" class="clientval" value="8"></td>
   <td><input type="hidden" name="order[]" value="1A">1A</td>
   <td><select name="movement[]" width=200 class="typeval"></select></td>
   <td><input type="hidden" name="rest[]" value="Rest">Rest</td>
   <td><label class="count"></label></td>
</tr>

这是movement_count.php

<?php

include('core/init.php');
protect_page();


$class_id = $_POST['class_id'];


if (isset($_POST['client_id'])){
$xmovement = x_move_performed($class_id, $_POST['client_id'], $_POST['movement']);

    echo json_encode ($xmovement);   
} // isset      


?>

这是查询数据库并返回数字(COUNT)

的php函数
function x_move_performed($class_id, $client_id, $movement){
$class_id = (int)$class_id;
$client_id = (int)$client_id;

$query = "SELECT COUNT(`movement`) FROM `completed_movements` WHERE `class_id` = $class_id AND `client_id` = $client_id AND `movement` = '$movement'";
$res = mysql_query($query);
$result = mysql_fetch_assoc($res);
return $result;
}

1 个答案:

答案 0 :(得分:1)

尝试使ajax同步:

async: false