2008-11-28 10 views
0

J'ai une page php qui affiche les lignes d'un db mysql comme une table. Un des champs contient du balisage HTML, et je voudrais cliqueter cette ligne cliquable et le html s'ouvrirait dans une nouvelle fenêtre popup. Quelle est la meilleure façon de le faire, et est-il un moyen de le faire sans écrire le code HTML dans un fichier?créer une popupwindow à partir de html, pas un fichier

edit: cette page php fait partie d'une application ajax, donc ce n'est pas un problème. Je ne veux pas utiliser jquery, car je devrais réécrire l'application.

modifier:

J'ai essayé à nouveau en utilisant l'exemple ci-dessous, et ont échoué. Je sais que ma balise de script est erronée, mais je suis en train de faire écho à row2 pour le moment, donc je pense que ma logique est fausse avant d'arriver au javascript.

$sql="SELECT * FROM Auctions WHERE ARTICLE_NO ='$pk'"; 
$sql2="SELECT ARTICLE_DESC FROM Auctions WHERE ARTICLE_NO ='$pk'"; 
$htmlset = mysql_query($sql2); 
$row2 = mysql_fetch_array($htmlset); 
echo $row2; 
/*echo '<script> child1 = window.open ("about:blank") 
child1.document.write("$row2['ARTICLE_DESC']"); 
child1.document.close()*/ 

Répondre

4
child1 = window.open ("about:blank") 
child1.document.write("Moo!"); 
child1.document.close() 
+0

Voulez-vous dire que je pourrais remplacer "Moo!" avec la variable de champ de base de données? –

+0

Oui en effet. Vous pouvez même charger vos données via Ajax + JSON et lui fournir une variable JavaScript si vous le souhaitez. –

+0

Je suis désolé pour ma nativité. Est-ce que je mettrais votre exmaple dans les balises de script, et onclick call appelle la fonction? –

0

Si vous ne souhaitez pas une fenêtre de navigateur (cette suggestion implique une boîte modale css), vous voudrez peut-être envisager l'une des variations « lightbox ».

Thickbox peut être utilisé pour charger le contenu en ligne de la page dans une fenêtre modale. Le lien fournit une démonstration/détails sur la façon de mettre en œuvre le contenu en ligne ainsi que d'autres variations.

0

Je suggère d'utiliser une bibliothèque Javascript comme jQuery car elle simplifie ce type de code et est compatible avec tous les navigateurs.

$(document).ready(function() { 

$('#clicker').click(function() { 
    myWindow=window.open('','','width=200,height=100') 
    myWindow.document.write($("#content")); 
    return false; 
}); 

}); 

Le code HTML sera:

<table> 
    <tr> 
     <td><div id="clicker">Click Here</div></td> 
     <td><div id="content">This is the content</div></td> 
    </tr> 
</table> 
0

si son beaucoup de données, d'une valeur de penser à le charger via ajax vus pour enregistrer la sélection et l'envoyer à l'utilisateur sur chaque chargement de page - ce qui serait assez facile avec quelque chose comme jquery comme déjà suggéré.

Questions connexes