【发布时间】:2012-09-01 14:08:51
【问题描述】:
我对 jquery 知之甚少,所以如果我没有多大意义,请见谅。
我有一个表,它的行是从 php db 查询中填充的(行数会有所不同),在这种情况下有两行数据。这是php生成的html表的一部分。
<table border=1 width=800px id=workout>
<tr>
<th width=300px id=clients>Client</th>
<th width=200px id=movements>Movements</th>
<th>X Completed</th>
</tr>
<tr>
<td><input type="hidden" name="client_id[]" class="clientval" value="1"></td>
<td>
<select name="movement[]" width=200 class='typeval' onchange='changeMovement()'>
<option value="select">Select...</option>
<option>Key Movement</option>
<option>Movement -1</option>
<option selected="selected" >Movement -2</option>
<option>Movement -3</option>
<option>Movement -4</option>
</select>
</td>
<td><label id="count"></label></td>
</tr>
<tr>
<td><input type="hidden" name="client_id[]" class="clientval" value="8">
<td>
<select name="movement[]" width=200 class='typeval' onchange='changeMovement()'>
<option value="select">Select...</option>
<option>Key Movement</option>
<option>Movement -1</option>
<option selected="selected" >Movement -2</option>
<option>Movement -3</option>
<option>Movement -4</option>
</select>
</td>
<td><label id="count"></label></td>
</tr>
我将movement 和client_id 的值传递给POST jquery,这样我就可以对数据运行php 查询并返回结果。如何根据选择菜单所在的行传递所选移动的值和 client_id。
例如:如果用户更改第二行的移动下拉菜单,我想将 client_id 和 selected>Movement< 发送到 jQuery 函数。现在它只是获取我表的第一行,仅此而已。
这是我编辑的 jQuery:
已编辑:
<script type="text/javascript">
var typeval,clientval, class_id;
$('.typeval').on('change', function(){
movement = $(".typeval option:selected").val();
client_id = $(this).parents('tr').find('input.clientval').val();
class_id = $(<? echo $class_id; ?>).val();
//console.log($(this).parents('tr').find('input.clientval').val(), $(this).val());
$.ajax(
{ url: "movement_count.php",
type: "post",
data: {typeval:typeval, client_id: clientval, class_id :},
dataType: "json",
});
success: (function(output) {
alert(output);
$(".count").html(output);
})
});
</script>
【问题讨论】:
-
可以将输入隐藏添加到同一个表数据中。然后按照 this.parent().find(".class") 的方式做一些事情
-
另外,为什么将数据设置为字符串而不是对象? { 运动:运动,client_id:client_id,class_id:class_id }
-
如果将数据保留为字符串,则需要在变量之间添加“&”:“movement="+movement+"&client_id="+client_id+"&class_ID"...
标签: php javascript jquery ajax