Switch koşulu çalışmıyor

Shuttesh

Megapat
Katılım
7 Mart 2015
Mesajlar
36
Daha fazla  
Cinsiyet
Erkek
PHP:
<?php.
$durum = $_SESSION['durum'] ?? null;
switch ($durum) {
case '1':
echo '<script type="text/javascript">swal("İşlem Başarılı!", "Tebrikler", "success")</script>';
$_SESSION['durum'] = null;
break;
case '0':
echo '<script type="text/javascript">swal("İşlem Başarısız!", "Tekrar Deneyin", "warning")</script>';
$_SESSION['durum'] = null;
break;
} ?>

Yukarıda durum değişkenimin değerine göre başarılı veya başarısız mesajı verdiriyorum. Normalde durum değişkenim 1 geldiğinde başarılı mesajım gelmeli ardından durum değişkenimi boş yapmalı. Ama burada başarılı mesajını atlayarak direkt olarak değişkenimi değerini null yapıyor. Bunu nasıl çözebilirim?
 

@Berkay Davas hocam müsaitse ilgilenebilir.
 
Ek olarak
PHP:
$_SESSION['durum'] = null;

Bu satırı kaldırdığımda kod çalışıyor. Tabi haliyle durum değeri sıfırlanmadığından aynı mesajı her sayfa yenilenmesinde veriyor.
 
Kodu buraya eklerken yanlışlıkla koymuş olabilirim. Kendi kodumda yok.
 
Evet o dosya yüklü.

PHP:
$_SESSION['durum'] = null;

Bunu kaldırınca düzeliyor fakat sessiondaki durum değeri aynı kaldığından sürekli mesajı verdiriyor haliyle.
Alert kullanınca da çalışmıyor. Ama durum değişkenini null yapan satırı kaldırınca çalışıyor.
 
Alert kullanınca da çalışmıyor. Ama durum değişkenini null yapan satırı kaldırınca çalışıyor.
PHP:
<?php
    $_SESSION['durum'] = "1";

    $isSuccess = true;

    $durum = $_SESSION['durum'] ?? null;
    switch ($durum) {
        case '1':
            $isSuccess = true;
            $_SESSION['durum'] = null;
            break;
        case '0':
            $isSuccess = false;
            $_SESSION['durum'] = null;
            break;
    }
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>  


    <script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
    <script>
        <?php if ($isSuccess) { ?>
            swal("İşlem Başarılı!", "Tebrikler", "success");
        <?php } else { ?>
            swal("İşlem Başarısız!", "Tekrar Deneyin", "warning");
        <?php } ?>
    </script>
</body>
</html>

Bu şekilde çalışır ama bu yöntem pek iyi değil. Başarılı mı sorgunu bir servis yapıp, AJAX ile sorgu atman daha sağlıklı olur. HTML etiketlerini kullanman lazım. DOM element yüklenmemesi sıkıntı oluyor.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…