我搜索了我的问题,但我找不到任何解决方案。 我觉得这很简单,我错过了一些非常简单的东西......但是我被困了。
我有一个带有php生成链接列表的html页面,如:
<?php
$val = "'"my file with spaces.txt"'";
echo '<a href="javascript:post_filename('.$val.');">click me</a>';
?>
每次$ val都不同,具体取决于SQL查询。 并且文件名显示正确,因为我将鼠标悬停在链接上,我可以在浏览器的左下角阅读:
javascript:post_filename(&#39;我的文件包含spaces.txt&#39;);
点击此链接将调用此javascript函数:
<script type="text/javascript">
function post_filename(val){
$.ajax
({
url: 'myurl.php',
data: { filename: val },
type: 'POST'
});
}
</script>
但点击它,什么都不做!没有错误,没有任何反应。
使用开发工具(Chrome上的F12),我发现它一切正常......只是mypage.php没有显示...是一个带有图形的页面,是网站的一部分!
我被困了......请帮助我! 非常感谢
答案 0 :(得分:1)
您的AJAX调用无效,data
应该是String,Array或Object。对象可能就是你从一开始就在这之后所做的事情
<script type="text/javascript">
function post_filename(val){
$.ajax
({
url: 'myurl.php',
data: {
filename: val
},
type: 'POST';
});
}
</script>
答案 1 :(得分:0)
尝试将数据作为对象:
<script type="text/javascript">
function post_filename(val){
$.ajax
({
url: 'myurl.php',
data: { filename: val },
type: 'POST';
});
}
</script>
答案 2 :(得分:0)
我尝试了你的代码,但我做了一些修改工作(我只是注意到你在类型之后有一个分号,我相信应该是一个逗号,这就是为什么你有意想不到的令牌)我的代码使用这个:
<?php
$val = "'hello.txt'";
echo '<a href="#" class="click" file="'.$val.'">click me</a>';
?>
on javascript
$('.click').click(function() {
$.ajax
({
url: 'myurl.php',
data: { filename: $(this).attr('file') },
type: 'POST'
})
.done(function (data) {
//check the output from your url
console.log(data);
})
.fail(function (jqXHR, textStatus) {
console.log("Request failed: " + textStatus);
});
});