我希望能够在 onclick 状态下执行 php 脚本,但每个页面都可以有多个按钮,每个按钮都有不同的要发送的操作。我想要执行脚本,但我不想更改页面。
这是执行 UDP 客户端以更改远程框中的设置。每个按钮向不同的板发送不同的操作,实际上我需要向脚本发送 2 个参数。
像这样我需要发送:set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1
感谢您的帮助!
最佳答案
URL 是什么并不重要。重要的是您使用的是什么 HTML 动词(get、post、delete、put)和您返回的内容类型。 URL 可以是任何内容。我只是使用一些像 jquery 这样的 js 库。查看他们的 $.get、$.post、$.ajax 函数。
如果您不使用 js 库,那么您需要考虑各种浏览器的所有差异。通常情况下,它是这样的:http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first
在您的情况下,我会使用 jquery(因为它会让您非常快速地开始)。由于您的变量在 url 中,并且您没有发送任何其他数据,您将使用 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'
在某种意义上观察浏览器,看看是否有匹配的元素出现,给它们绑定(bind)一个点击事件。从某种意义上说,Live 主动等待 dom 更改。Click 是处理程序,$('#the-id-of-your-button') 是选择器。下一部分:
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 一旦页面准备就绪,我们将打开实时命令来监视按钮。你可能不需要它(我知道在某些情况下它并不重要,但我把它放在那里以防万一)。
您可能需要稍微调整一下 :)。
关于php - 在 AJAX 中执行带有变量参数的 php 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8981149/