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

时间:2015-08-31 11:34:43

标签: javascript php arrays session

我将会话值存储到从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];
}

1 个答案:

答案 0 :(得分:1)

关于第一部分错误:

<?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. @Hearner说,你的标签是完全错误的。它应该在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?

  4. 关于第二部分

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

    我不明白你在这里要做什么......需要更多的代码/信息...没有你的整个代码就无法帮助更多......

    编辑:

    这是一个非常简单的示例,向您展示如何将您的vars保存到会话数组中。

    第一页(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>";
    ?>