Jak zmiennej w php przypisać wartość zwracaną przez funkcje js?

0

funkcja js:

<script>
function potwierdzenie()
{
var x =flase;
x=confirm("Czy napewno chcesz usunąć konto?");
return x;
}
</script>

jak teraz przypisać to do zmiennej w php?

0

A co by ci to miało niby dać? PHP jest ewaluowane po stronie serwera a JS po stronie klienta. Ergo skrypt JS wykona się zawsze później.

0

Tak jak powyżej. Od siebie dodam, że jeżeli masz problem tego rodzaju tzn. że źle podszedłeś do sprawy i na pewno jest dużo lepszy sposób zrobienia tego co chcesz.

0

Musisz wywołać zaptanie (najlepiej typu POST) korzystając z obiektu XmlHttpRequest, czyli użyć AJAX. Serwer dostanie w poście jaką tam chcesz wartość przekazać i usunie konto klienta. Oczywiście przy odpowiedzi 'NIE' możesz zakończyć obsługę po stronie przeglądarki.
Tak działają modne ostatnio aplikacje korzystające z wzorca REST. Tyle, że pisząc coś takiego warto mieć podstawy i użyć gotowej biblioteki javascriptowej lub frameworka serwerowego.

0

@chodnik: zamiast ajaxa wystarczy po prostu zwykły ukryty formularz, który się zasubmituje z danymi POST - na etapie w jakim jest autor zapewne byłoby to prostsze do urządzenia

0

Mógł byś podpowiedzieć jak to zrobić? Wcześniej z js kombinowałem żeby po kliknięciu usuń wyskakiwało okienko do potwierdzenia a z tym ukrytym formularzem nie wiem jak to zrobić.

0

Zrób tam normalny formularz i nie kombinuj skoro nie umiesz.

1

<font size="4">Opcja 1:</span>
Tworzysz formularze z atrybutem data-confirm oraz wklejasz odpowiedni skrypt na końcu strony (skrypt można ulepszyć i zastosować addEventListener/attachEvent, w tym momencie jeżeli masz jakiś onsubmit na formularzu to ten skrypt go nadpisze) - takich formularzy na stronie może być wiele, skrypt wklejasz raz (tuż przed zakończeniem </body>).

<form method="post" action="usun.php" data-confirm="Czy napewno chcesz usunąć konto?">
    <input type="hidden" name="id" value="1" />
    <input type="hidden" name="inny parametr" value="costam" />
    <input type="submit" value="usun konto uzytkownika"/>
</form>
    var f = document.forms; // wszystkie formy z dokumentu
    for (var i=0; i<f.length; i++) { // iterujemy po formach
        var form = f[i]; // aktualna forma
        form.onsubmit = function(event) { // nadpisujemy zdarzenie onsubmit
            var str = this.getAttribute('data-confirm'); // pobieramy atrubut
            if (str!==null) { // jeżeli atrybut istnieje
                if (!confirm(str)) { // a user odrzuci okno dialogowe
                    event.preventDefault(); // zablokuj wykonywanie zdarzenia
                    return false; // jw. w zasadzie niepotrzebne, ale jakby się jakaś przeglądarka zbuntowala..
                }
            }
        }
    }

<font size="4">Opcja 2:</span>
W dokumencie masz ukryty formularz pod określony przypadek, ale submit możesz wywołać w dowolnym elemencie, po prostu dodając mu atrybut data-submit-form. Na końcu dokumentu oczywiście skrypt. Zadziała z IE8+ i bez trybu kompatybilności! Przy przepisaniu pod jQuery zadziała wszędzie.

<div>
    ple ple ple
    <table>
        <tr>
            <th>costam</th><th>costam</th>
        </tr>
        <tr>
            <td>dupa</td>
            <td>
                <a href="#" data-submit-form="jakas_forma_01">usun konto "dupa"</a>
            </td>
        </tr>
    </table>
</div>

<form style="display: none;" id="jakas_forma_01" method="post" action="usun.php" data-confirm="Czy napewno chcesz usunąć konto?">
    <input type="hidden" name="id" value="1" />
    <input type="hidden" name="inny parametr" value="costam" />
</form>
    var links = document.querySelectorAll('*[data-submit-form]'); // pobiera wszystkie elementy z atrybutem "data-submit-form"
    for (var i=0; i<links.length; i++) { // iteruje po nich
        var current = links[i];
        current.onclick = function(event) { // nadpisuje zdarzenie onclick
            var id = this.getAttribute('data-submit-form'); // pobiera wartosc atrybutu
            var form = document.querySelector('#'+id); // wyszukuje pasujacą formę
            if (form) { // jeżeli znalazł
                var str = form.getAttribute('data-confirm'); // czyta z formy komunikat
                if (str!==null) { // jak komunikat istnieje
                    if (confirm(str)) { // a user potwierdzi go
                        form.submit(); // submituj formularz
                    }
                }
            }
            event.preventDefault(); // nie pozwól na wykonanie "normalnej" akcji po kliknięciu (np. przejście do linka)
            return false;
        }
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1