希望这次我不会搞砸:) 为了让人们不要错过了解我想在PHP中使用javascript设置Session变量,请阅读以下内容:
echo "<td><input type='button' id=$type value='Buy!' onclick=location.href='buyone.php'></td>";
我希望按钮ID从1增加到5,但似乎我只在5次循环之后得到所有按钮id = 5。
while($row=mysqli_fetch_array($result)){
$type = $row['petID'];
echo "<tr>";
echo "<td>" .$type. "</td>";
echo "<td>" .$row['price']. "</td>";
echo "<td><input type='button' id=$type value='Buy!' onclick=location.href='buyone.php'></td>";
echo "<tr>";
}
$ type值是1到5,因为我在数据库中有5行,ID为1到5。 我想创建一个表格,每行都有一个按钮,如果我点击按钮,我会在数据库中插入换行符。这是一个不同的故事,但这就是我现在想要的:当我点击一个按钮时,我可以将该行的ID保存在$ _SESSION [&#39; type&#39;]中以便在其他人中使用PHP文件。所以我用这个:
<script>
$("#1").click(function(){
<?php $_SESSION['type'] = 1;?>
});
$("#2").click(function(){
<?php $_SESSION['type'] = 2;?>
});
$("#3").click(function(){
<?php $_SESSION['type'] = 3;?>
});
$("#4").click(function(){
<?php $_SESSION['type'] = 4;?>
});
$("#5").click(function(){
<?php $_SESSION['type'] = 5;?>
});
</script>
但无论我点击什么,$ _SESSION [&#39;类型&#39;]的值仍为5.我认为这是因为按钮的ID始终是$ type循环后的最后一个值,所以所有的id都是5,这就是我运行它时只能得到5的原因。
我应该怎么做才能修复它?另外,我也希望在脚本中有一个循环,但我不确定如何使用它。
所以提前感谢,我在这里等待你的所有评论:)
答案 0 :(得分:0)
首先要了解PHP是服务器端评估的,jQuery / js是客户端,所以不要混淆。其次在jQuery / javascript中你不能直接使用PHP会话,你必须通过jQuery / javascript使用cookie,检查这个jQuery pug-in,然后在你的PHP脚本中获取cookie。
同样,<input type='button' id=$type>
将$ type更改为$ row ['id']以获取表格的id / primary索引。
关于这段代码,您可以将它设置为工厂,使其更具通用性,想想如何巧妙地命名输入然后动态捕获,而不是像这样的硬编码,因为如果你有超过5只宠物你是什么要去做,添加更多:D?!
<script>
$("#1").click(function(){
$.cookie('type', '1');
});
$("#2").click(function(){
$.cookie('type', '2');
});
$("#3").click(function(){
$.cookie('type', '3');
});
$("#4").click(function(){
$.cookie('type', '4');
});
$("#5").click(function(){
$.cookie('type', '5');
});
</script>
答案 1 :(得分:0)
将其更改为以下
<script>
$(document).ready(function(){
$("#1").click(function(){
$.post(
"yourfilename.php",
{ myid: "1" },
function(data) {
alert('session set');
}
);
});
})
</script>
在php中
if(isset($_POST['myid']))
{
$_SESSION['type'] = $_POST['myid'];
}
也可以将其用于其他人