我有以下代码:
<ul>
<li>
<a href="index.php?page=quiz" class="cat" >
<h3>Category 1</h3>
<p>(explain here)</p>
</a>
</li>
<li>
<a href="index.php?page=quiz" class="cat" >
<h3>Category 2</h3>
<p>(explain here)</p>
</a>
</li>
</ul>
我需要的是把分类号发到页面index.php?page=quiz
通过$_POST
或其他任何东西
无需通过 $_REQUEST
发送像这样index.php?page=quiz&cat=1
OR 将类别编号值分配给 $_SESSION
根据当前点击的链接变化
获取目标页面的值 index.php?page=quiz
.
我已经尝试过这个解决方案:
javascript
通过将变量值发送到页面
var num=1; /*or put the current clicked category number */
$.ajax({
url: 'index.php?page=quiz',
type: 'post',
dataType: 'json',
data: {
category_no: num,
}
})
发送过程和page=quiz
的值好像有问题
没有发送到目的地,我们仍在当前页面上 page=home
.
您有什么有用的想法吗?
注意:我的问题不是将类别 ID 从当前点击的(按钮/链接)获取到 javascript
, 但使用上述任何一种方式将其发送到目标页面。
最佳答案
解释解决方案:
问题是没有 exit()
和 json_encode()
作为我的函数的结果,它不能在页面 index.php
代码中应用意思是
整个函数必须移动到另一个文件
问题解决如下:
我的页面:
<ul>
<li>
<a href="" data-no="1" class="cat" >
<h3>Category 1</h3>
<p>(explain here)</p>
</a>
</li>
<li>
<a href="" data-no="2" class="cat" >
<h3>Category 2</h3>
<p>(explain here)</p>
</a>
</li>
</ul>
JavaScript:
$('.cat').on('click', function (e) {
// Prevent default action of link click
e.preventDefault();
var cat = $(this).data('no');
var curr='set_var.php';
$.ajax({
url: curr,
type: 'POST',
dataType: 'json',
data: {
category: cat
}
}).done(function(res) {
if (res.valid) {
document.location.href = 'index.php?page=quiz';
}
});
});
set_var.php :
<?php
session_start();
if(isset($_POST['category'])){
$_SESSION['cat']=$_POST['category'];
$result['valid'] = TRUE;
}
echo json_encode($result);
exit();
?>
感谢您的所有回答
关于javascript - PHP根据(按钮/链接)点击设置$_SESSION变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47095986/