我希望能够在onclick状态下执行php脚本,但是每个页面都可能有多个按钮,每个按钮都有不同的动作要发送。我希望脚本被执行,但我不希望页面被更改。
这是执行UDP客户端来更改远程框中的设置。每个按钮向不同的板发送不同的操作,实际上我需要向脚本发送2个参数。
类似这样我需要发送:set_states.php?ip = xxx.xx.xxx.xx& cmd = CR1
Thanx的帮助!
答案 0 :(得分:1)
URL是什么并不重要。重要的是你正在使用的HTML动词(获取,发布,删除,放置)和返回的内容类型。 URL可以是任何东西。我只是使用像jquery这样的js库。查看他们的$ .get,$。post,$ .ajax函数。
如果您不使用js库,则需要考虑各种浏览器的所有差异。通常虽然它是这样的:http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first
在你的情况下,我会使用jquery(因为它会让你非常快速地开始)。由于您的变量位于网址中,并且您没有发送任何其他数据,因此您将使用get。通常对于mutators,你应该使用post。在你的情况下,我认为这不重要。将以下脚本放到您的网页上(根据需要进行更改):
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script>
$(function(){
$('#the-id-of-your-button').live('click',function(){
$.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){
alert('success');
});
});
});
</script>
第一部分:$('#the-id-of-your-button').live('click'
在某种意义上观察浏览器,看看是否有匹配的元素出现并将点击事件绑定到它们。从某种意义上说,积极地等待着dom的变化。 Click是处理程序,$(&#39;#-id-of-your-button&#39;)是选择器。下一部分:
function(){
$.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){
alert('success');
});
});
是click事件发生时发生的事情。我们称之为匿名函数。它可以改写为:
function onButtonClick(){
$.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){
alert('success');
});
});
$('#the-id-of-your-button').live('click',onButtonClick());
或类似的东西,但这只是为了帮助您了解正在发生的事情。
下一部分:
$.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){
alert('success');
});
是ajax请求和成功返回时要执行的函数。在这种情况下,它只是提醒我们。
哦哦:$(function(){});
包装了所有内容,告诉我们在页面准备好后运行脚本。 Soooo一旦页面准备就绪,我们将打开实时命令来监视按钮。你可能不需要它(我知道在某些情况下,它并不重要,但我把它放在那里以防万一)。
您可能需要稍微调整一下:)。