-1
Sort By Date Created
ボタンをクリックすると、sort()
文字列にdate
が渡され、警告1(コード参照)が文字列date
を出力します。 文字列date
は、最初のif
ステートメントのセッションに格納され、警告2はdate
を出力します。問題はdate
が一時的にしか格納されておらず、アラート3は常に種類にかかわらずservice
アラートです。 if文の順序を変更すると、最後のif文の文字列が常にセッションに格納されます。セッションは最後のセッション値を変更する前にデータを1秒間保存するだけです
<?php session_start(); ?>
<html>
<head>
<script>
function sort(type){
alert('<?php echo $_SESSION['sort']; ?>'); ///ALERT 1
if (type == 'date'){
<?php $_SESSION['sort'] = 'date'; ?>
alert('<?php echo $_SESSION['sort']; ?>'); ///ALERT 2
}
else if (type == 'cost'){
<?php $_SESSION['sort'] = 'cost'; ?>
alert('<?php echo $_SESSION['sort']; ?>');
}
else if (type == 'service'){
<?php $_SESSION['sort'] = 'service'; ?>
alert('<?php echo $_SESSION['sort']; ?>');
}
alert('<?php echo $_SESSION['sort']; ?>'); ///ALERT 3
}
</script>
</head>
<body>
<input type="button" onclick="sort('date');" value="Sort By Date Created">
<input type="button" onclick="sort('cost');" value="Sort By Cost">
<input type="button" onclick="sort('service');" value="Sort By Service">
</body>
</html>
ありがとうございました。代わりにGETを使用して別のページにデータを渡してみて、そこに保存してみます:) – Demi