Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX/prototype重置调用_Ajax_Prototypejs_Call_Reset - Fatal编程技术网

AJAX/prototype重置调用

AJAX/prototype重置调用,ajax,prototypejs,call,reset,Ajax,Prototypejs,Call,Reset,我有一个与AJAX/原型相关的问题。我在onclick(我保证我会把它移出那里:)事件中有一个AJAX调用,当前是内联的,如下所示: onclick="var pn = $('yards').value; $('inventory').update('Working...'); new Ajax.Updater('inventory','ajax.php?ac=checkInventory&productID='.$someproductid.'&yards='+pn,{meth

我有一个与AJAX/原型相关的问题。我在onclick(我保证我会把它移出那里:)事件中有一个AJAX调用,当前是内联的,如下所示:

onclick="var pn = $('yards').value; $('inventory').update('Working...');
new Ajax.Updater('inventory','ajax.php?ac=checkInventory&productID='.$someproductid.'&yards='+pn,{method:'get', evalScripts: true, asynchronous: true, onComplete:function(tr){$('inventory').update(tr.responseText);}});"
然后,名为ajax.php的文件从$_GET[]获取数据,显示一个小的文本输入字段。当填写并单击提交按钮时,它调用一个函数,从文件中读取相关数据,并在屏幕上打印结果。所有这些代码的目的都是库存检查

因此,当用户用上面定义的onclick单击“获取库存”按钮时,一切都很好,用户填充码数,弹出正确的结果,每个人都很高兴。但是,如果用户想要进行另一次库存检查,那么整个页面都需要刷新,这使得它的可用性降低。如果不是,则当单击“获取库存”按钮时,用户将再次获得与上次检查相同的结果,而不是文本输入字段

所以,我的问题是,在一次库存检查之后,整个事情会自动重置,这样下次用户单击“获取库存”按钮时,他会再次填写文本输入字段,从而获得新的结果

如果我说得不够清楚,我很抱歉。我对AJAX和prototype非常陌生,这是我同事的工作,我需要完成…谢谢

啊,我明白了

我不认为Ajax.Updater是这样工作的;请查看文档:

尝试的事项:

  • 在ajax.updater调用中触发onComplete事件时,请在重新填充文本输入字段之前清除该字段

  • 提醒响应,以确保从服务器获得不同的响应

    *使用Fiddler确保您传递的是不同的productId

  • 将onComplete更改为onSuccess


希望这对您有所帮助,因为您已经承诺要将代码移出
onclick
处理程序,请执行以下操作:

var inv = $('inventory');

inv.update('Working...');

new Ajax.Request('ajax.php', {
    method:'get',
    parameters:{
        ac:'checkInventory',
        yards:$('yards').value
    },
    onSuccess: function(response)
        {
            inv.update(response.responseText);
        }
});

谢谢,它在调试过程中确实有所帮助。最后,我将其从onclick中删除,并设置整个函数,使其在显示文本输入字段的同时调用onclick。这样,每当用户单击该按钮时,它就会重新启动。
var inv = $('inventory');

inv.update('Working...');

new Ajax.Request('ajax.php', {
    method:'get',
    parameters:{
        ac:'checkInventory',
        yards:$('yards').value
    },
    onSuccess: function(response)
        {
            inv.update(response.responseText);
        }
});