Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
Javascript 在不离开页面的情况下触发API url_Javascript_Php_Html - Fatal编程技术网

Javascript 在不离开页面的情况下触发API url

Javascript 在不离开页面的情况下触发API url,javascript,php,html,Javascript,Php,Html,我有一个php页面,其按钮定义如下: $id=17; echo " <a href='#' class='btn btn-xs' onclick=process($id,'99')>ON</a>"; $id=17; 回声“; 调用脚本: <iframe height='0' width='0' name='hiddenFrame' id='hiddenFrame'> </iframe> <script language=javas

我有一个php页面,其按钮定义如下:

$id=17;
echo " <a href='#' class='btn btn-xs' onclick=process($id,'99')>ON</a>";
$id=17;
回声“;
调用脚本:

    <iframe height='0' width='0' name='hiddenFrame' id='hiddenFrame'>
</iframe>
<script language=javascript>
  //  Grab the device id and type and append them to the forms querystring ...
  function process(id,value)    
    {   
      document.getElementById("hiddenFrame").src="http://192.168.1.90/JSON?request=controldevicebyvalue&ref=" + id +"&value=" + value;
    }     
</script>

//获取设备id并键入并将其附加到表单querystring。。。
函数进程(id、值)
{   
document.getElementById(“hiddenFrame”).src=”http://192.168.1.90/JSON?request=controldevicebyvalue&ref=“+id+”&value=“+value;
}     
其目的是使用参数调用脚本中的URL,因为它将触发API上的事件。 按钮和脚本都可以工作,但是当我点击页面按钮中的一个按钮时,它会滚动到顶部——这对于我的页面很长的移动设备来说是不必要的。
此外,我认为使用更少或更优雅的代码可以达到这个目的。

它之所以会滚动到顶部,是因为
href
属性中的
#
。您可以在原始JS中完成,但使用jQuery也可以。在PHP文档中,我建议将要传递的变量存储在HTML5
data-
属性中。由于您需要同时传递ID和值,因此我们可以使用
数据ID
数据值
,或您需要的任何其他后缀

$id=17;
echo " <a href='#' class='btn btn-xs' data-id='$id' data-value='99'>ON</a>";
唯一的缺点是AJAX调用受限制,以防止。如果您正在对不同的域进行Ajax调用,请考虑使用.< /P>
检查浏览器中从AJAX调用接收到的HTTP头是一种很好的做法,以便执行故障排除。

为什么不?使用
似乎是一个超级黑客。我同意,这是一个超级黑客-我很确定这比实际情况更困难,但我对jQuery和AJAX的了解太有限-我尝试了一些解决方案,但无法实现
$('a[data-id][data-value]').click(function(e) {
    // Make AJAX call
    $.ajax({
        url: 'http://192.168.1.90/JSON',
        type: 'GET',
        data: {
            request: 'controldevicebyvalue',
            ref: $(this).data('id'),    // Or $(this).attr('data-id')
            id: $(this).data('value')   // Or $(this).attr('data-value')
        }
    }).done(function(msg) {
        // Callback for success
        console.log('Success: ' + msg);
    }).fail(function(msg) {
        // Callback for failure
        console.log('Failure: ' + msg);
    });

    // Prevent default action (scrolling to top)
    e.preventDefault();
});