我想在点击链接时在后台打开一个 php 文件,而不是向用户显示指向该 php 文件的链接。
我意识到唯一的方法是使用 ajax。
但它不工作,而不是在后台打开新的 php 页面而不是没有任何反应,php 代码不执行。
我的javascript
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript">
$('a#run-php-script').click(function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: 'http://mywebsiteaa.com/myfile.php?addId=<?php echo $add->id); ?>'
});
return false;
});
</script>
我的html
<a id="run-php-script" href="#">clickit</a>
请注意,当我将 php 链接放入 html href 标记时,我的 php 脚本运行良好。但问题是它向用户显示了我的 php 文件 url,我不希望用户看到它,也不希望它在新选项卡中打开(如果可能的话),而是在后台打开。
我也用 GET
代替 POST
试过了,还是不行。
请帮忙谢谢
更新 -- 根据用户请求,我已将其更改为按钮。我也忘记了包装标签。但它仍然不起作用。
新js
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#run-php-script').click(function(){
$.ajax({
type: 'POST',
url: 'http://mywebsiteaa.com/myfile.php?addId=<?php echo $add->id); ?>',
success: function(){
alert('success');
},
error: function(){
alert('failure');
}
});
return false;
});
});
</script>
新的 html
<input id="run-php-script" type="button" name="someBtn" value="clickit" />
当我点击按钮时仍然没有任何反应。 php 页面无法在后台打开。
我在上面的脚本中添加了成功代码。但即使它显示“成功”弹出窗口,实际的 php 页面仍然没有在后台打开并执行,只是没有任何反应。
请帮忙谢谢
最佳答案
这里有两处问题:
- 该链接具有
target="_blank"
属性,因此单击它会在新选项卡中打开 href,您应该将其删除。 - 事件处理程序不会阻止链接的默认操作
如果您根本不希望浏览器处理链接,您应该将 preventDefault() 调用添加到处理程序
例如
$('a#run-php-script').click(function(e){
e.preventDefault();
...
});
关于javascript - 尝试在链接点击时使用ajax在后台打开一个php文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40570430/