Question

Je suis en cours d'exécution dans un peu d'un problème lorsque je tente de retourner un lien pour tirer un thickbox sur ma page d'un simple écho de php. En fait ce que j'ai est:

Une page avec quelques comprennent des énoncés comme:

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

Chacun des inclure relevés de points juste un fichier php qui tire une courte requête et echos sur un lien avec un arbitre d'ancrage pour ouvrir un thickbox en ligne (avec un formulaire) lorsque l'utilisateur clique sur le texte du lien:

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

Ainsi, lorsque l'utilisateur clique sur le lien sur la page, un thickbox avec un formulaire est censé apparaître. L'utilisateur entre ses modifications à la section donnée, les clics soumettre, et jquery messages ajax le formulaire et le div avec recharge indiquer de façon explicite pour afficher les modifications.

Cela fonctionne la première fois que la page est chargée, mais une fois que je soumets le formulaire et essayer de cliquer sur le lien retourné à nouveau rien ne se passe. Cela semble fonctionner si j'ai le lien entoure la div avec l'intérieur indiquer de façon explicite (ce qui est un gros problème pour le faire), mais je ne comprends pas pourquoi cela ne fonctionne pas si j'ai le lien dans le inclus déclaration php.

Quelqu'un peut-il offrir quelques conseils? Je sais qu'il ya beaucoup de gens brillants ici et je suis probablement tout simplement pas comprendre quelque chose de très basique. Merci!

Était-ce utile?

La solution

Vous devez lier thickbox à vos liens en utilisant événements / en direct . Quelque chose comme:

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

Cela permettra d'éviter vos liens Thickbox a permis de perdre leur liaison à Thickbox après leur rechargées ou injectés par ajax.

Vous pouvez aussi le faire dans le rappel à votre méthode de .ajax $ (ou .post $ ou autre), par exemple:.

$.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');
                }
});

Autres conseils

On dirait que c'est un problème javascript et non un problème de php.

On dirait que vous me enregistrer un événement lorsque la page se charge et une fois l'événement terminé ajax, vous n'êtes pas réinscrivant l'événement. Je ne peux pas savoir sans le voir le javascript bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top