0

$_SESSION['state']ユーザーがイベントを発生させてアンカータグをクリックするたびに更新しようとしていonclickます。$state_names_array特定の国の州のすべての名前としての変数。しかし問題は、どのアンカー タグをクリックしても、$_SESSION['state'] 常に $state_names_array の最後の要素によって更新されることです。

<?php
foreach($state_names_array as $value){
    $temp = '<?php $_SESSION["state"]=$value;?>';
    ?>
    <a href="index.php" onclick="document.write('<?php $_SESSION['state'] = $value ?>')"><?php echo $value ?></a><br>
    <?php
}
?>
4

1 に答える 1

0

コード全体をコーディングするのではなく、例とその方法を示すだけです。

<?php
    foreach ($state_names_array as $value) {
        echo '<a href="index.php" onclick="change_value('.$value.');">'.$value.'</a><br>';
    }
 ?>

次に、JavaScript関数がありますchange_value

ここで、処理する PHP ファイルに ajax 呼び出しを送信します。$_SESSION["state"]=$value;

また、サイトを更新した後にのみ新しいアクセスが可能になるため、アンカーがクリックされた後に何をしたいのか、あなたは言いません$_SESSION["state"]でした...

また、アンカーをクリックした後、単に index.php にリダイレクトしたい場合もあり、それで十分です。値を $_GET パラメータとして使用するだけです。fe:

<?php
    foreach ($state_names_array as $value) {
        echo '<a href="index.php?new_value='.$value.'">'.$value.'</a><br>';
    }
?>

index.php ファイルに次の行を追加します。

if (isset($_GET['new_value'])) {
    $_SESSION["state"] = $_GET['new_value'];
}
于 2013-10-28T15:59:20.393 に答える