我希望能够在onclick状态下执行php脚本,但每个页面都可以有多个按钮,每个按钮都有不同的发送操作。我希望脚本被执行,但我不希望页面被更改。
这是为了执行UDP客户端来更改远程框中的设置。每个按钮都会向不同的板发送不同的操作,实际上我需要向脚本发送2个参数。
我需要发送这样的东西:set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1
谢谢你的帮助!
URL是什么并不重要。重要的是您使用的HTML动词(get、post、delete、put)和返回的内容类型。URL可以是任何内容。我只想使用一些js库,比如jquery。看看他们的$.get、$.post、$.ajax函数。
如果你不使用js库,那么你需要考虑到各种浏览器中的所有差异。通常情况下是这样的:http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first
在您的情况下,我会使用jquery(因为它会让您非常快速地开始)。由于你的变量在url中,并且你没有发送任何其他你会使用get的数据。通常,对于突变子,您应该使用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'
在某种意义上监视浏览器,查看是否出现任何匹配的元素,并将单击事件绑定到这些元素。Live在某种意义上积极地等待着dom的改变。Click是处理程序,$("#yourbutton的id")是选择器。下一部分:
function(){
$.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){
alert('success');
});
});
是单击事件发生时发生的情况。我们称之为匿名函数。可以重写为:
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一旦页面准备好,我们将打开实时命令来查看按钮。你可能不需要它(我知道有些情况下它并不重要,但我把它放在那里只是以防万一)。
你可能需要稍微调整一下:)。