سؤال

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

صفحة مع عدد قليل من البيانات تشمل مثل:

<?php 
    include ("display_header.php");
?>

كل واحد من عبارات تشمل فقط يشير إلى ملف PHP يسحب استعلاما قصيرا و Echos خارج رابط مع مرساة المرجع لفتح صندوق سميكة مضمنة (مع نموذج) عند النقر فوق المستخدم على نص الارتباط مثل:

echo "<a href='#TB_inline?height=265&width=225&inlineId=header_change' class='thickbox' style='text-decoration:none; color:#990000'>";
echo "Query Result etc";
echo "</a>";

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

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

هل يمكن لأي شخص تقديم بعض الإرشادات؟ أعلم أن هناك الكثير من الأشخاص الرائعين هنا وأنا فقط لا أفهم شيئا أساسيا للغاية. شكرا!

هل كانت مفيدة؟

المحلول

تحتاج إلى ربط سماكة سميكة إلى روابطك باستخدام الأحداث / العيش. وبعد شيء مثل:

$("a.thickbox").live("click",function() {
    tb_init('a.thickbox');
});

من شأنها أن تمنع الروابط الخاصة بك سميكة الصمامات من فقدان ملزمها لسمكها بعد إعادة تحميلها أو حقنها عبر Ajax.

يمكنك أيضا القيام بذلك في رد الاتصال بطريقة أو أي دولار أو أيا منها)، على سبيل المثال:

$.ajax({
    type:       "GET",
    url:        "/ajax-content.php",
    cache:      false,
    data:       "f=foo&b=bar",
    loading:    $('.loading').html(''),
    success:    function(html) {
                    $('#ajaxContent').html(html);
                    //re-attach thickbox
                    tb_init('a.thickbox, area.thickbox, input.thickbox');
                }
});

نصائح أخرى

يبدو أن هذه مشكلة JavaScript وليس مشكلة PHP.

يبدو لي أنك تقوم بتسجيل حدث عند تحميل الصفحة وبمجرد اكتمال حدث AJAX، فأنت لا يتم إعادة تسجيل الحدث. لا أستطيع أن أعرف ذلك دون رؤية جافا سكريبت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top