javascript code - كيف أقوم بتشغيل كود PHP عندما ينقر مستخدم على رابط؟




example in (9)

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

<a href=""></a>

أو مع حدث javascript onclick؟


Answers

حسنًا ، يجب أن تكون لديك وظيفة جافا سكريبت يتم تشغيلها عن طريق النقر الذي يؤدي إلى تحميل 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 في الاستجابة ، ويمكن تحليلها وتفعل ما تريد من هناك. عندما تقوم بإنشاء الاستجابة ، يمكنك أيضًا القيام بأشياء الخلفية مثل تحديث قواعد البيانات.


هناك طريقة أفضل فقط هي AJAX كما يقترح الجميع في مشاركاتهم. البديل هو استخدام IFrames مثل أدناه:

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

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

الآن سوف تحصل على الإخراج في IFrame (يمكنك وضع IFrame في أي مكان تريده في الصفحة أو حدث يخفيه والنتيجة من النص البرمجي).

نأمل لحل غير Ajax هذا أفضل.


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

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

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

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

اليكس


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

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

<script type="text/javascript">

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

شكر،

cowtipper


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

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

<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


إذا لم تكن قد قمت بتثبيت 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>

Null Coalesce Operator php

تمت إضافة عامل التجميع الخالي (؟؟) إلى PHP7 للحالة الشائعة عند الحاجة إلى استخدام نظام علاجي بالتزامن مع isset (). تقوم بإرجاع المعامل الأول الخاص به إذا كان موجودًا وليس NULL ، وإلا يتم إرجاع معامله الثاني ، مثل المثال التالي:

$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; 




php javascript html hyperlink anchor