我需要在点击图片时更改一些会话变量。
所以我在相关图片上添加了一个课程(图片是标志)。它用于翻译网站。
在我的网站中,语言是使用session var定义的,默认情况下它设置为english。
所以人们可以改变它们
这是我得到的一种图像<img src="images/fr.png" title="French" alt="French" class="flag" id="fr">
。所以我添加了class和Id,
然后我使用jquery编写了以下代码,使其在同一页面上没有重新加载:
<script type="text/javascript">
$(document).ready(function () {
$("img.flag").click(function(){
// Get the src of the image
var src = $(this).attr("id");
// Send Ajax request to backend.php, with src set as "img" in the POST data
$.post("lib_php/session.php", {"lang": src});
})
})
</script>
在我发送帖子的页面上,我只有那段代码:
<?php
session_start();
// do any authentication first, then add POST variable to session
$_SESSION['lang'] = $_POST['lang'];
?>
麻烦的是没有任何改变,一切都保持不变。
我不知道我哪里错了
非常感谢Anylind的帮助。
答案 0 :(得分:2)
通过查看上面的代码很难说。据我所知,jQuery和PHP的语法看起来都很好。我想你的问题可能是由以下原因引起的:
echo $_POST['lang']
session_start()
。答案 1 :(得分:1)
尝试以下方法检查一切是否正常:
$.post("lib_php/session.php", {"lang": src} ,function(data)
{
alert (data);
});
然后在会话中php:
echo $_SESSION['lang'];
答案 2 :(得分:1)
您必须在使用session_start();
<script>
<?php session_start(); ?>
<script type="text/javascript">
$(document).ready(function () {
$("img.flag").click(function(){
// Get the src of the image
var src = $(this).attr("id");
// Send Ajax request to backend.php, with src set as "img" in the POST data
$.post("lib_php/session.php", {"lang": src});
})
})
</script>
我尝试使用$.ajax
并且它有效。请试试这个
<img src="images/fr.png" title="French" alt="French" class="flag" id="fr" />
<script type="text/javascript">
$('img.flag').click(function() {
var src = $(this).attr("id");
$.ajax({
type:'POST',
data: {lang: src},
url:'lib_php/session.php'
});
});
</script>
注意:重要的是,<script type="text/javascript">
位于img
代码