我有一个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;
}
答案 0 :(得分:1)
尝试使ajax同步:
async: false