w3schools - w3school php




كيف أقوم بتشغيل كود PHP عندما ينقر مستخدم على رابط؟ (6)

أرغب في تشغيل صفحة ما لبعض كود PHP عندما ينقر المستخدم على رابط ، دون إعادة توجيههم. هل هذا ممكن مع

<a href=""></a>

أو مع حدث javascript onclick؟


أعرف أن هذه المشاركة قديمة لكني أردت فقط إضافة إجابتي!

قلت لتسجيل خروج مستخدم بدون توجيه ... هذه الطريقة لا تعيد التوجيه ولكنها تعيد المستخدم إلى الصفحة التي كانت عليها! هنا تنفيذ عملي:

// 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");
?>

وهناك نذهب!

الرمز الذي يحصل على اسم الملف من عنوان url الكامل ليس دليلًا على الخطأ. على سبيل المثال إذا تم تضمين سلاسل الاستعلام مع un-escaped '/' فيها ، فسوف تفشل.

ومع ذلك هناك العديد من البرامج النصية هناك للحصول على اسم الملف من url!

الترميز سعيدة!

اليكس


إذا لم تكن قد قمت بتثبيت jquery بعد (لأنك مجرد مبتدئ أو شيء آخر) ، استخدم هذا الرمز من التعليمات البرمجية:

<a href="#" onclick="thisfunction()">link</a>

<script type="text/javascript">
function thisfunction(){
    var x = new XMLHttpRequest();
    x.open("GET","function.php",true);
    x.send();
    return false;
}
</script>

حسنا قلت دون إعادة توجيه. حسنا رمز جافا سكريبت:

<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>

محاولة إعطائها :) آمل أن تكونوا مثل ذلك


حسنًا ، يجب أن تكون لديك وظيفة جافا سكريبت يتم تشغيلها عن طريق النقر الذي يؤدي إلى تحميل AJAX لصفحة ما ثم ترجع false ، وبهذه الطريقة لن تتم إعادة توجيهها في المتصفح. يمكنك استخدام ما يلي في jQuery ، إذا كان هذا مقبولًا لمشروعك:

<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>

يمكنك أيضًا إجراء عملية إعادة نشر إذا كنت بحاجة إلى استخدام قيم النماذج (استخدم طريقة $ .post ()).


لا يمكنك تشغيل PHP عندما ينقر المستخدم على رابط دون مغادرة الصفحة إلا إذا كنت تستخدم AJAX. PHP هي لغة برمجة نصية ، أي الثانية التي يرى المتصفح الصفحة ، لا يوجد PHP فيها.

بخلاف جافا سكريبت ، يتم تشغيل PHP بشكل كامل على الخادم ، ولن يعرف المتصفح كيفية تفسيره إذا قام بتلقينه في المؤخرة. الطريقة الوحيدة لاستدعاء شفرة PHP هي تقديم طلب صفحة ، إما عن طريق تحديث الصفحة ، أو استخدام javascript للذهاب إلى صفحة.

في حل AJAX ، تستخدم الصفحة بشكل أساسي جافا سكريبت لإرسال طلب صفحة إلى صفحة أخرى على نطاقك. ثم تحصل على جافا سكريبت ما قررت أن echo في الاستجابة ، ويمكن تحليلها وتفعل ما تريد من هناك. عندما تقوم بإنشاء الاستجابة ، يمكنك أيضًا القيام بأشياء الخلفية مثل تحديث قواعد البيانات.


هذا يجب أن تعمل كذلك

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

<script type="text/javascript">

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

شكر،

cowtipper





anchor