PHP değişken bir JavaScript onaylamak kutusunun sonucu atama

3 Cevap php
//this is in php
function msgbox($msg, $type)
    {
    if ($type == "alert")
        {
        // Simple alert window
        ?> <script language="JavaScript"> alert("<? echo $msg; ?>"); </script> <?
        }
    elseif ($type == "confirm")
        {
        // Enter Confirm Code Here and assign the $result variable for use
        // Should include "OK" and "Cancel" buttons.
        ?>
           <script language="JavaScript">
           if (confirm("<? echo $msg; ?>"))
                {
                <? $result == "ok"; ?>
                }
           else
                {
                <? $result == "cancel"; ?>
                }
           </script>
        <?
        }
    }



if ($page_title->exists())

{msgbox("page exists,do you want to delete", "confirm");

}      
 if ($result == "ok")
//code..

Sorun $result Bence onayla kutusundan değerini okuyarak olmadığını çünkü olmadan fıkra idam edilmemesi ve bunun nereye gideceğini program akış gidiyor ise fıkra eğer.

3 Cevap

You cannot mix server-side code (PHP) with client-side code that way. For javascript to change PHP-state, you need to make a HTTP-call (AJAX is often used).

Eğer bir PHP-öğretici okuma ve kavramları kavramak emin olmak gerekir.

Aksi takdirde kodu php kodunuzu yürütmek olmayacak onlar php.ini dosyasında açık olduğundan emin olun, kısa etiketlerini kullanarak.

Istediğiniz gibi gerçekleştirmek için çalışıyoruz ne kadar uzun sayfa sunucu tarafında oluşturulan gibi, Ajax ile oluşturulan ve daha sonra kullanıcıya göndermek olabilir, doğrudan $result değişkeni müdahale edemez. Önce bir AJAX referansını ve nasıl kullanılacağını kavramak ..

101 article on Ajax with jQuery (sitepoint.com)

Simple implementation of AJAX with jQuery and PHP

Client.html

<!--some html...-->
<a class="ajax" href="/delete.php?title=some+title">Delete action link</a>

<script type="text/javascript">
// assuming jQuery has been loaded
$(function () {
    $('a.ajax').click(function () {
        // get link's href, get main url part and query part
        var link = $(this).attr('href');
        var route = link.substring(0, link.lastIndexOf('?'));
        var query = link.substring(link.lastIndexOf('?') + 1);

        // perform ajax call, to the main part of the link, with data
        $.ajax({
            type: "GET",
            url : route,
            data : query,
            success : function (data) {
                if (data === '1') {
                    window.alert('page removed');
                } else {
                    window.alert('error');
                }
            }
        });

        // prevent default behavior
        return false;
    });
});    
</script>

Ve parametre olarak $ _GET ['title'] götüren bir delete.php komut dosyası,

<?php
    $title = $_GET['title'];
    if ($pages->contain($title)) {
        $pages->remove($title);
        echo '1';
    }
?>

Note, that this is just simplified, to show you, how a simple AJAX call can be done