Ouverture de jQuery UI boîte de Dialogue de contenu dynamique
J'ai une question à propos de jQuery UI boîtes de Dialogue et montrant un contenu dynamique à partir d'une base de données.
J'ai donc reçu une webapplication où j'ai aussi besoin de faire un module admin pour gérer tous les utilisateurs et d'autres informations. J'ai créé une page qui affiche tous les utilisateurs dans une liste, dans chaque ligne, j'ai également fait un bouton éditer. Je voulais faire en sorte que lorsque vous appuyez sur un des utilisateurs de modifier le bouton, une boîte de dialogue s'ouvre et affiche toutes les informations de l'utilisateur et des trucs dans la boîte de dialogue.
Donc ma question est, quelle est la meilleure façon de le faire? Je pensais faire une page PHP où j'exécute la Requête MySQL et de montrer que dans la boîte de dialogue, mais je suis sûr qu'il y a de meilleures façons..
EDIT: Voici le code de la page telle qu'elle est maintenant. J'ai ajouté un petit espace réservé boite que j'ai utilisé pour des fins de test.
Javascript:
script type="text/javascript">
jQuery(document).ready( function(){
jQuery(".edit-button").click( showDialog );
//variable to reference window
$myWindow = jQuery('#myDiv');
//instantiate the dialog
$myWindow.dialog({ height: 600,
width: 800,
modal: true,
position: 'center',
autoOpen:false,
title:'Bewerk therapeut',
overlay: { opacity: 0.5, background: 'black'}
});
}
);
//function to show dialog
var showDialog = function() {
$myWindow.show();
//open the dialog
$myWindow.dialog("open");
}
var closeDialog = function() {
$myWindow.dialog("close");
}
PHP:
<?php
//LEFT OUTER JOIN Vragen ON Vragen.bsn_nummer = Gebruikers.bsn_nummer
include_once 'classes/class.mysql.php';
$db = new Mysql();
$dbUsers = new Mysql();
$db->Query("SELECT * FROM USERS_users ORDER BY username ASC");
$db->MoveFirst();
echo "<table>";
echo "<tr><th> </th><th> </th><th>BSN Nummer</th><th>Gebruikersnaam</th> <th>Voornaam</th><th>Achternaam</th></tr>";
while(! $db->EndOfSeek()) {
$row = $db->Row();
$dbUsers->Query("SELECT * FROM Gebruikers WHERE user_idnr = '{$row->user_idnr}'");
$rowUser = $dbUsers->Row();
echo "<tr><td><a class='del-button' href='#'><img src='afbeeldingen/edit-delete.png' /></a></td>
<td><a class='edit-button' href='#'><img src='afbeeldingen/edit.png' /></a> </td>
<td>".@$rowUser->bsn_nummer."</td>
<td>".@$row->username."</td>
<td>".@$rowUser->voornaam."</td>
<td>".@$rowUser->achternaam."</td></tr>";
}
echo "</table>";
?>
<div id="myDiv" style="display: none">
<p>Gebruiker bewerken</p>
</div>
Il ne serait pas mal de poster des extraits de code pertinentes ici. De cette façon, la question peut être utile à d'autres qui trébuchent à travers un scénario similaire.
J'ai ajouté mon code actuel de la poste. La plupart de c'est juste qu'liste des utilisateurs actuels. Je n'ai pas vraiment commencer à travailler sur le jQuery partie pour l'instant.
OriginalL'auteur Gladen | 2012-07-17
Vous devez vous connecter pour publier un commentaire.
Nope. On dirait que vous avez vu juste.
espace réservé pour le popup ->
jQuery dialogue de l'interface utilisateur ->
Maintenant que les paramètres par défaut ont été créés, envoyer une requête ajax pour les données à partir du fichier php, et de mettre à jour le contenu de la 'popup' div.
dans la page PHP, la construction d'un formulaire à renvoyer ->
Je tiens à être rigoureuse dans mes réponses.
FWIW, si vous allez compter sur côté client en JS, vous feriez mieux d'avoir tous les scripts juste retour JSON, puis de remplir le formulaire sur le côté client.
Ouaip, c'est sûr! Garder ceux qui veulent des réponses à venir. Vous êtes les bienvenus pour modifier mon post et de le faire retourner un
json_encoded
'ed tableau!Il y a toujours une chose qui me confond bien, j'ai obtenu un numéro d'identification pour chaque utilisateur. Je l'ai déjà eu de la base de données avec une requête. Comment puis-je envoyer ce numéro d'identification via AJAX?
OriginalL'auteur Ohgodwhy
Non, c'est tout.
Vous aurez besoin d'un script PHP, pour vous donner de l'utilisateur courant des détails, et un second dans lequel vous devez combiner l'ajout d'un nouvel utilisateur, ou de la mise à jour d'un utilisateur existant.
Utiliser AJAX pour obtenir la liste des utilisateurs, de même que l'actuel "détail" de la page envoyer un JSON blob contenant les informations.
Utiliser le côté client Javascript pour remplir la boîte de dialogue elle-même.
La partie la plus difficile est de s'assurer que seuls les utilisateurs autorisés peuvent parler à l'arrière-plan des scripts.
OriginalL'auteur Alnitak
Voici ce que je ferais:
lors de la création de la liste des utilisateurs, je sais que l'id (unique) pour chaque utilisateur. Ensuite associer un gestionnaire d'événement pour le bouton modifier qui va faire une requête ajax vers un serveur de script côté avec cet id d'utilisateur, le serveur de script côté permettra de vous envoyer des détails de l'utilisateur au format JSON.
disposez d'un modèle, par exemple un div, qui a tous les champs dont vous avez besoin pour mettre à jour les détails de l'utilisateur (avec des classes attaché ou les id de sorte que vous savez comment les trouver avec les sélecteurs). lorsque vous recevez des données à partir du serveur vous définissez la valeur des champs dans votre modèle de données dans la réponse du serveur, puis ouvrez la boîte de dialogue (qui est pré maintenant rempli avec les données dont vous avez besoin).
mise à jour des détails de l'utilisateur peut aussi le faire en ajax, pour garder les choses simples. (saisissant les valeurs dans les entrées, et d'envoyer une demande au serveur, l'envoi également l'id de l'utilisateur dont vous souhaitez modifier les détails.
Alors... bonne chance!
OriginalL'auteur Angel
La façon la plus simple serait d'obtenir l'information dans la base de données à l'aide de PHP, et de remplir l'INTERFACE utilisateur des tables comme ça. L'inconvénient majeur serait temps de chargement. Si vous trouvez que la page est trop long à charger, alors vous voudrez peut-être chercher dans jQuery .ajax()
OriginalL'auteur SomeKittens