我有一个选择框包含在表中的每一行 - 我想允许用户更改该选择框的值,而不需要触发更新MySQL重新加载页面等更新数据库从更改表中选择
我已经能够得到这个使用Ajax的工作,当有一个行,但当他们是多行时,因为jQuery无法知道哪个id或类我指的是多个存在。
当用户更改tr id中的select时,我想将tr id传入行并将选定的阶段传入val,以便我可以通过Ajax将其更新(例如1,3),然后if他们更新第2行中的选择,例如它应该发送2,1。
HTML
<table>
<tr id="1">
<td>
<select name="dropdown" class="stage">
<option value="1">Stage 1</option>
<option value="2">Stage 2</option>
<option value="3">Stage 3</option>
</select>
</td>
</tr>
<tr id="2">
<td>
<select name="dropdown" class="stage">
<option value="1">Stage 1</option>
<option value="2">Stage 2</option>
<option value="3">Stage 3</option>
</select>
</td>
</tr>
</table>
然后jQuery中我使用:
$(document).on('change', '.stage',function(e)
{
var row = $(".stage").parent("tr").attr("id");
var val = $('.stage').val();
e.preventDefault();
console.log(row);
console.log(val);
$.ajax({
url:'updateStage.php',
type:'post',
data: {"row": row,"stage": val}
});
});
然后在updateStage.php我正在为行和Val的岗位价值和更新MySQL的 - 我还没有包括只要我能得到传递给它的正确值,它就能正常工作。
当我改变选择,在控制台我见下文:
undefined
3
这指向没有得到TR的ID,而且当我改变了第二选择,这并不总是更新到正确的值,但取而代之的是第一次选择的值。
你必须使用'VAR行= $(本).parent( “TR”)ATTR( “ID”);'和'$(本).val();' –
为什么downvote? – bhttoan