echo PHP中的变量

echo PHP中的变量,php,jquery,mysql,session,Php,Jquery,Mysql,Session,希望这次我不会搞砸:) 为了让大家不要误会我想要在PHP中使用javascript设置会话变量,请阅读以下内容: echo "<td><input type='button' id=$type value='Buy!' onclick=location.href='buyone.php'></td>"; echo”“; 我想让按钮ID从1增加到5,但似乎在5次循环之后,我只得到所有按钮ID=5 while($row=mysqli_fetch_array($

希望这次我不会搞砸:) 为了让大家不要误会我想要在PHP中使用javascript设置会话变量,请阅读以下内容:

echo "<td><input type='button' id=$type value='Buy!' onclick=location.href='buyone.php'></td>";
echo”“;
我想让按钮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>";
}
while($row=mysqli\u fetch\u数组($result)){
$type=$row['petID'];
回声“;
回显“$type.”;
回显“$row['price']”;
回声“;
回声“;
}
$type的值从1到5,因为我在数据库中有5行ID从1到5。 我想创建一个表,其中每一行都有一个按钮,也就是说,如果我单击该按钮,我将在数据库中插入换行符。这是一个不同的故事,但这正是我现在想要的:当我单击一个按钮时,我可以将该行的id保存在$_SESSION['type']中,以便在其他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>

$(“#1”)。单击(函数(){
});
$(“#2”)。单击(函数(){
});
$(“#3”)。单击(函数(){
});
$(“#4”)。单击(函数(){
});
$(“#5”)。单击(函数(){
});
但无论我点击了什么,$\u SESSION['type']的值仍然是5。我想这是因为按钮的id总是$type循环后的最后一个值,所以所有的id都是5,这就是为什么我运行它时只能得到5

我该怎么做才能修好它?另外,我也想在脚本中有一个循环,但我不知道如何使用它


所以提前谢谢,我在这里等待你们的评论:)

首先要了解PHP是服务器端评估的,而jQuery/js是客户端,所以不要混淆。第二,在jQuery/javascript中,您不能直接使用PHP会话,您必须通过jQuery/javascript使用cookies,选中此项,然后在PHP脚本中获取cookies

同样对于
将$type更改为$row['id'],以获取表的id/主索引

同样关于这段代码,你可以将其工厂化,使其更通用,思考如何巧妙地命名输入,然后动态捕获,而不是像这样硬编码的输入,因为如果你有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”)。单击(函数(){
$.cookie('type','1');
});
$(“#2”)。单击(函数(){
$.cookie('type','2');
});
$(“#3”)。单击(函数(){
$.cookie('type','3');
});
$(“#4”)。单击(函数(){
$.cookie('type','4');
});
$(“#5”)。单击(函数(){
$.cookie('type','5');
});
如下更改

<script>
$(document).ready(function(){
    $("#1").click(function(){

$.post( 
             "yourfilename.php",
             { myid: "1" },
             function(data) {
                alert('session set');
             }

          );



    });

})

</script>

其他人也可以使用它

你正在将PHP与javascript混合,PHP是服务器端评估的,而jQuery/js是客户端,这是行不通的,你可以在js中使用cookies,然后在你的PHP脚本中捕获变量。谢谢,我现在就去谷歌搜索cookies的使用方法:)@karoly:这不是真正的问题,真正困扰我的是这句话:echo“;我想将按钮id从1设置为5,但在循环之后似乎都是5。您将id=$type更改为id=$row['id'],但说真的,您是在混搭东西,您应该首先考虑了解基本知识,然后才能了解如何做您想要的事情。首先,您需要修复此代码中的HTML:
是的,您是对的,它将有超过5个,所以我现在要听从你的建议:好的,所以这是正确的方法。让我试试这个:请删除按钮中的onclick=location.href='buyone.php',并添加if(isset($\u POST['myid']){$\u SESSION['type']=$\u POST['myid'];header('location:buyone.php');}
if(isset($_POST['myid']))
{
  $_SESSION['type'] = $_POST['myid'];
}