Bir kullanıcı bir linke tıkladığında nasıl PHP kodu çalıştırmak mı?

9 Cevap php

Bir kullanıcı bir linke tıkladığında bir sayfa onları yönlendirme olmadan, bazı PHP kodu çalıştırmak istiyorum. Bu ile mümkündür

<a href=""></a>

veya javascript onclick olayı ile?

9 Cevap

Evet, bir sayfada bir AJAX yük yapar ve daha sonra sahte döndüren bir onClick, onlar tarayıcıda yönlendirilecek olmaz bu şekilde tarafından tetiklenen bir javascript işlevi olması gerekiyordu. Bu proje için kabul edilebilir olmadığını, jQuery aşağıdaki kullanabilirsiniz:

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function doSomething() {
    $.get("somepage.php");
    return false;
}
</script>

<a href="#" onclick="doSomething();">Click Me!</a>

Eğer form değerleri ($. Sonrası kullanın () yöntemi) kullanmanız gerekiyorsa da bir post-geri yapabilirdi.

Eğer doğru anlamak, size AJAX gerekir.

http://www.w3schools.com/Ajax/Default.Asp

Diğerleri önerilen gibi, bir ajax arama yapmak için javascript kullanın.

<a href="#" onclick="myJsFunction()">whatever</a>

<script>
function myJsFunction() {
     // use ajax to make a call to your PHP script
     // for more examples, using Jquery. see the link below
     return false; // this is so the browser doesn't follow the link
}

http://docs.jquery.com/Ajax/jQuery.ajax

Ben bu yazı eski olduğunu biliyorum ama ben sadece benim cevap eklemek istedim!

Sen yönetmenlik OLMADAN dışında bir kullanıcı oturum dedi ... Bu yöntem yönlendirmek YAPAR ama onlar vardı sayfaya kullanıcıyı döner! Burada benim uygulaması bulunuyor:

// every page with logout button
<?php
        // get the full url of current page
        $page = $_SERVER['PHP_SELF'];
        // find position of the last '/'
        $file_name_begin_pos = strripos($page, "/");
        // get substring from position to end 
        $file_name = substr($page, ++$fileNamePos);
    }
?>

// the logout link in your html
<a href="logout.php?redirect_to=<?=$file_name?>">Log Out</a>

// logout.php page
<?php
    session_start();
    $_SESSION = array();
    session_destroy();
    $page = "index.php";
    if(isset($_GET["redirect_to"])){
        $file = $_GET["redirect_to"];
        if ($file == "user.php"){
            // if redirect to is a restricted page, redirect to index
            $file = "index.php";
        }
    }
    header("Location: $file");
?>

ve biz oraya gitmek!

tam url dosya adını alır kod hata kanıtı değildir. Sorgu dizeleri onlara '/' un-kaçtı ile ilgili ise, örneğin, başarısız olur.

Ancak url den dosya almak için orada birçok komut vardır!

Mutlu Kodlama!

Alex

Bir kullanıcı AJAX kullanmak sürece sayfayı terk etmeden bir linke tıkladığında çalışacak PHP cant. PHP tarayıcı sayfasını gördüğü ikinci anlam serverside betik dili, içinde hiçbir PHP yoktur.

Javascript aksine, PHP sunucuda tamamen koştu, ve arkada onları bit Eğer tarayıcı yorumlamak nasıl bilemeyiz. PHP kodu çağırmak için tek yolu, sayfayı yenilemeyi, veya bir sayfa alıp gitmek için javascript kullanarak ya, bir sayfa isteği yapmaktır.

AJAX Çözüm, temelde sayfa alanınızda başka bir sayfaya bir sayfa isteği göndermek için javascript kullanır. Javascript sonra yanıt echo karar ne olursa olsun alır ve bunu ayrıştırmak ve oradan ne isterse yapabilir. Eğer yanıtı oluştururken, aynı zamanda veritabanlarını güncellemek gibi herhangi bir arka uç şeyler yapabilirsiniz.

Peki yönlendirme olmadan dedi. Peki onun bir javascript kodu:

<a href="JavaScript:void(0);" onclick="function()">Whatever!</a>

<script type="text/javascript">
function confirm_delete() {
    var delete_confirmed=confirm("Are you sure you want to delete this file?");

    if (delete_confirmed==true) {
       // the php code :) can't expose mine ^_^
    } else { 
       // this one returns the user if he/she clicks no :)
       document.location.href = 'whatever.php';
    }
}
</script>

bunu denemeye :) hope you like it

There is the only better way is AJAX as everyone is suggest in their posts. The alternative is using IFrames like below:

<iframe name="f1" id="f1"> </iframe>

<a href='yourpage.php' target='f1'>Click </a>

Şimdi (komut bunu gizlemek sayfa veya olay ihtiyaç her yerde IFrame yerleştirebilirsiniz ve sonucu) IFrame çıktı alırsınız.

Bu iyi olmayan Ajax çözüm için umut.

Bunu yapan başka bir sayfaya göndermek ya

<a href="exec.php">Execute PHP</a>

ya da ajax ile bunu

<script type="text/javascript">
// <![CDATA[
    document.getElementById('link').onclick = function() {
        // call script via ajax...
        return false;
    }
// ]]>
</script>
...
<a href="#" id="link">Execute PHP</a>

Bu da çalışması gerekir

<a href="#" onclick="callFunction();">Submit</a>

<script type="text/javascript">

function callFunction()
{
  <?php require("functions.php");  ?>
}
</script>

Teşekkürler,

cowtipper