【发布时间】:2012-03-22 00:21:19
【问题描述】:
我不确定返回 html 是否是这里的方法,但我对 JSON 完全没有经验,也许这就是我的问题的答案。
我有两个带有项目的 ul 列表,它们都有一个选择,第一个列表包含所有选定选项等于 cero 的项目,另一个列表包含其余的:
<ul id="invlistsinmesa">
<li id="inv-56">
<label>Name 1</label>
<select>
<option value="1">Mesa 1</option>
<option value="2">Mesa 2</option>
<option value="3">Mesa 3</option>
<!-- ... -->
<option selected="selected" value="0">Sin mesa</option>
</select>
<div class="delete_box"><a href="#invlistsinmesa" class="close">Delete</a></div>
</li><li id="inv-57">
<label>Name 2</label>
<select>
<option value="1">Mesa 1</option>
<option value="2">Mesa 2</option>
<option value="3">Mesa 3</option>
<!-- ... -->
<option selected="selected" value="0">Sin mesa</option>
</select>
<div class="delete_box"><a href="#invlistsinmesa" class="close">Delete</a></div>
</li>
</ul>
<ul id="invlist">
<li id="inv-36">
<label>Name 1</label>
<select>
<option value="1">Mesa 1</option>
<option value="2">Mesa 2</option>
<option selected="selected" value="3">Mesa 3</option>
<!-- ... -->
<option value="0">Sin mesa</option>
</select>
<div class="delete_box"><a href="#invlistsinmesa" class="close">Delete</a></div>
</li><li id="inv-37">
<label>Name 2</label>
<select>
<option selected="selected" value="1">Mesa 1</option>
<option value="2">Mesa 2</option>
<option value="3">Mesa 3</option>
<!-- ... -->
<option value="0">Sin mesa</option>
</select>
<div class="delete_box"><a href="#invlistsinmesa" class="close">Delete</a></div>
</li>
</ul>
如您所见,其中有很多代码,而且都来自数据库。我在这里进行了一些 ajax 调用(删除、添加新项目),但我遇到的一个问题是当我更改所选选项时。这是我现在的代码(更改选择):
编辑:添加了点击功能(它没有改变,因为我使用 jqTransform 来设置选择的样式,但它与使用常规选择的更改相同)
$('li[id^="inv-"] div.jqTransformSelectWrapper ul li a').on('click', function(){
var item=($(this).closest("li[id^='inv-']")).attr('id');
var id = parseInt(item.replace("inv-", ""));
var nummesa= ($(this).closest('li')).attr('class');
$.ajax({
type: "POST",
url: "ajax-invi.php",
dataType: "html",
data: "id="+id,
success: function(data) {
if(data>=0){
if(data!=0){
noty({"text":"Person has been moved"});
}else{
//Here I need to control if the list item needs to
//change to the other list or not
}
}else{
if(data=='-1'){
noty({"text":"Table is full, person cannot move there","type":"error"});
}
}
}
});
});
在我的 ajax-invi.php 文件中,我查询数据库以查看该人是否可以移动到新选择的选项(基本上你把人放在表中,你不能把一个人放在一个完整的表中,这需要被控制),如果表已满则返回 -1,否则返回 0,但如果我需要移动它,那么我会遇到问题,因为我没有返回需要移动的 html。
【问题讨论】:
-
帮助我了解所需的行为。假设您为 inv-56 选择了一个表。当您返回 0 时,您希望将 inv-56 的 html 从 invlistsinmesa 移动到 invlist。对吗?