当第二个数组值存储在php中时,数组值被替换

Array value is replaced when second one stores in php

本文关键字:数组 替换 中时 第二个 存储 php      更新时间:2023-09-26

我将会话值存储到从URL获取的数组中,并尝试显示它(在购物车中获取产品的大小)。但是第一个值将被第二个值替换。

我代码:

if(isset($_POST['radio'])){
    $_SESSION['sz']=$_POST['radio'];
    $si=$_SESSION['sz'];
}
<a href="product_detail.php?pdt_id='.$pdid.'&add=' .$pdid .'&size='.$si.'" 
 class="cartBtn" onclick="return fun1()">Add to cart</a>';
?>

显示页面:

$rt=$_GET['size'];
$_SESSION['wer']=$rt;
$array = $_SESSION['wer'];  //Assigns session var to $array
//print_r($array);  
echo $array[$x];
}

关于第一部分错误:

<?php
    if(isset($_POST['radio'])){
        $_SESSION['sz']=$_POST['radio'];
        $si=$_SESSION['sz'];
    }
    <a href="product_detail.php?pdt_id='.$pdid.'&add=' .$pdid .'&size='.$si.'"      class="cartBtn" onclick="return fun1()">Add to cart</a>';
?>
  1. 你的标签是完全错误的@赫纳说。它应该在php标签之外,或者在里面加上"echo",像这样:

    echo "<a href='product_detail.php?pdt_id=".$pdid."&add=".$pdid."&size=".$si."' class='cartBtn' onclick='return fun1()'>Add to cart</a>";
    
  2. 你不能从if语句中访问$si变量。正如这里所写的,如果你的$si之前没有声明(因为你说它不是你的完整代码…),那么$si(在链接href中)不存在。因此,你应该在if语句之前声明它,或者把你的链接(一个标签)也放在if语句中!

  3. 如果你的"$_POST['radio']"没有设置怎么办??会发生什么呢?代码失踪……!! $si是申报的吗?

关于第二部分:

<?php
    for( $x = 0, $max = count($array); $x < $max; ++$x ) {
        $rt=$_GET['size'];
        $_SESSION['wer']=$rt;
        $array = $_SESSION['wer'];
        echo $array[$x];
    }
?>

我不明白你想干什么…需要更多代码/信息…没有你的全部代码,我无法提供更多帮助…

编辑:

下面是一个非常简单的示例,向您展示如何将get变量保存到会话数组中。

第一页(pageOne.php):

<?php
    session_start();
    if(!(isset($_SESSION['myTest']))){
        $_SESSION['myTest'] = "AWESOME";
        $_SESSION['varToKeep'] = [];
    }else{
        echo "A session is already started. This is : ".$_SESSION['myTest']."<br/>";
        if(count($_SESSION['varToKeep']>0)){
            echo "There are ".count($_SESSION['varToKeep'])." vars in the array!<br/>";
            for($i=0;$i<count($_SESSION['varToKeep']);$i++){
                echo "Item ".$i." : ".$_SESSION['varToKeep'][$i]."<br/>";
            }
        }
    }
    echo "<br/>Click below to add a value in array<br/>";
    $random = rand(1,100);
    echo "<a href='pageTwo.php?mygetvar=STACKTEST".$random."'>Click here</a>";
?>

第二页(pageTwo.php):

<?php
    session_start();
    echo "myTest value is : ".$_SESSION['myTest']."<br/><br/>";
    $value = $_GET['mygetvar'];
    $_SESSION['varToKeep'][] = $value;
    echo "<a href='pageOne.php'>CLICK HERE TO RETURN ON PAGE ONE!</a>";
?>