我有一个页面,用户可以通过单击“添加新”按钮并导致出现新行来在父任务中创建子任务,然后他们填写并保存。该行具有一个自动生成的参考号,该参考号是通过在另一个文件中调用PHP脚本获得的。
问题在于每个新行都有相同的参考号,因此我需要一种方法来确保该数字是唯一的。我的想法是向当前参考编号的函数中发送第二个参数,以查看它是否与当前编号相同,如果是,则生成一个不同的编号。我的想法是使用Ajax。
我尝试过Ajax,但它在控制台中未显示任何内容(以测试其是否正常工作)。该页面使用MooTools,因此我无法使用jQuery。这是我第一次尝试Ajax。
这是模板的一部分:
<script id="connectedjobtemplate" type="text/template">
<tr id="childjobrow3" class="odd" data-row-id="3">
<td>
<input data-row-id="3" id="reference[3]" name="childjobid[3][reference]" value="<%= ref %>" class="ref" size="14" style="background-color: transparent; border: none;" />
</td>
</tr>
</script>
这会检查是否单击“添加新”按钮,然后调用该函数以添加新行:
$(document.body).addEvent('click:relay(#add-new-row)', function (e, el) {
try{
e.preventDefault();
addChildJobRow();
}catch(e){
.
}
});
这是addChildJobRow函数:
function addChildJobRow() {
try {
lastrow++;
var refNum;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
refNum = this.responseText;
}
};
xhr.open('GET', '<?php echo $this->MJob->getNewJobRef(232); ?>', true);
xhr.onload = function() {
console.log('Test');
};
xhr.send();
//refNum = '<?php echo $this->MJob->getNewJobRef(232); ?>';
Elements.from(connectedjobtemplate({
rownum: lastrow,
cl: cl,
ref: refNum,
nysid: '',
dinNum: '',
warrantNum: ''
})).inject($('newChildJobTable'));
} catch (e) {
.
}
}
控制台中什么也没有出现。我在想问题可能是PHP作为xhr.open行中的URL发送的,但是对Ajax的了解不足以知道是否是问题所在。
在此先感谢您的帮助。
答案 0 :(得分:0)
与老板交谈后,他希望我不要使用Ajax并调用PHP函数,只需读取父作业的编号,然后使用JavaScript将每个子作业增加1。
谢谢那些回答。