logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

PHP i okienko confirm z javascript - jak to połączyć

malum 27 Lip 2007 21:20 3534 2
REKLAMA
  • #1 4120898
    malum
    Poziom 23  
    Posty: 882
    Pomógł: 1
    Ocena: 141
    Witam!
    Natrafiłem na pewien problem podczas pisania oprogramowania strony.
    Chciałem, aby po otwarciu się danej podstrony wyskoczył komunikat typu CONFIRM z przyciskami OK i ANULUJ, a dokładniej z zapytaniem, "czy jesteś pewny, że..."
    Skonstruowałem więc coś takiego:
    
    <SCRIPT language=JavaScript>
      if(!confirm('Tekst')) { window.location='index.php?op=confirm1' }
    </SCRIPT>
    
    <?php
    if($_GET['op']=="confirm1")
    {
    echo("TAK");
    } 
    if($_GET['op']=="confirm2")
    {
    echo("NIE");
    }
    ?>
    

    Okazuje się jednak, że po naciśnięciu klawisza OK wszystko działa, wyświetla się TAK, a po naciśnięciu ANULUJ ponownie pojawia się okienko konfirm , zamiast wyświetlić NIE.
    Wiem, powiecie, że nie mam odpowiedniego warunku.
    Otóż problem polega na tym, że jak dopisuję warunek, dzięki któremu powinien wyświetlić się napis NIE, to skrypt przestaje działać całkowicie i bez względu na rodzaj wciśniętego przycisku zawsze otwiera się ponownie.

    Jak to przerobić aby zadziałało?
    Pomóżcie proszę, będę niezmiernie wdzięczny.

    Przy okazji, próbowałem też takich wersji:
    
    
    <SCRIPT language=JavaScript>
      if(!confirm('Tekst')) { window.location='index.php?op=confirm1' }
    </SCRIPT>
    
    <?php
    if($_GET['op']=="confirm1")
    {
    echo("TAK");
    } 
    else
    {
    echo("NIE");
    }
    ?>
    


    oraz (tu właśnie zmienia cię zmienna op, ale nie znika okienko confirm:
    
    <SCRIPT language=JavaScript>
      if(!confirm('Tekst')) { window.location='index.php?op=confirm1' }
      else { window.location='index.php?op=confirm2' }
    </SCRIPT>
    
    <?php
    if($_GET['op']=="confirm1")
    {
    echo("TAK");
    } 
    if($_GET['op']=="confirm2")
    {
    echo("NIE");
    }
    ?>
    
  • REKLAMA
  • Pomocny post
    #2 4120972
    krzychoocpp
    VIP Zasłużony dla elektroda
    Posty: 1866
    Pomógł: 387
    Ocena: 58
    Witam, a dlaczego okno miałoby się niewyświetlać ? Rozumiem że kod pochodzi z index.php. Więc za każdym razem natrafi na instrukcję wywołującą okno.

    Po pierwsze: nie
    <SCRIPT language=JavaScript>

    a:
    <script type ="text/javascript">

    I po drugie:
    
    <?php 
    if(isset($_GET['op']))
    {
        if($_GET['op']=='confirm1') 
        { 
            echo('TAK'); 
        } 
        if($_GET['op']=='confirm2') 
        { 
            echo('NIE'); 
        } 
    }
    else
    {
    ?>
    <script type ="text/javascript">
      if(!confirm('Tekst')) { window.location='index.php?op=confirm1' } 
      else { window.location='index.php?op=confirm2' } 
    </script>
    
    <?php
    }
    ?>

    Po trzecie: Nie stosuj niepotrzebnie " ". PHP parsuje wnętrze cudzysłowów szukając zmiennych, trwa to dłużej niż gdybyś użył ' '.

    I jeszcze jedno na koniec: Pomyśl co będzie, jeśli ktoś ma wyłączony javascript. Jeśli okienko nie jest konieczne, zrób po prostu stronę przejściową z dwoma przyciskami.

    Pozdrawiam, Krzysztof.
  • #3 4120990
    malum
    Poziom 23  
    Posty: 882
    Pomógł: 1
    Ocena: 141
    Super, jak najbardziej działa i masz ode mnie punkcik :-)

    Znalazłem również taką konstrukcję, że sam na to nie wpadłem.
    Czasami najprostsze jest najlepsze :)

    
    <a href="http://google.pl" onclick="return confirm( 'Czy na pewno chcesz kontynuować?' );">Chcesz wyświetlić google.pl ?</a>
    


    Temat uważam za zamknięty!
REKLAMA