[AJAX] transmettre les paramètres de user selectionner en utilisant ajax la ajax (php 5 mvc ajax
bonjour je travaille sur un projet qui utilise mvc ORM Data Mapper et template phpBB2.
je veux faire un module de gestion d'utilisateurs en utilisant cette dernier technologie: je procède de la manière suivante:
je créer d abord ma page accueil qui contient trois zone ( menu horizontal(qui contient des liens ), menu vertical lui aussi et le centre. mais j utilise ajax pour afficher les page des liens sur le contenu centre, tous ça ne me cause pas de problème.
après je crée script qui permet d afficher les utilisateurs en utilisant les tableaux qui contient le nom, prénom, login exct... plus des liens modifier et supprimer, maintenant mon problème se pose au nivaux de mes liens modifier car je veux si je click sur le liens modifier il m ouvre une nouvelle page edit form sur le contenu centre en utilisant ajax , j arrive a appeler le form edit en utilisant ajax mais j arrive pas à transmette les paramètre de l utilisateur qu on veux éditer
voici mes codes:
mon controleurs :
qui contient une méthode qui permet de selectionner l'utilisateurs qu on doit editer
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| <?php
class updateuserformMultiActionController {
private $_registry;
public function __construct(Registry $registry){
$this->_registry = $registry;
}
public function updateuserform_action()
{
require_once(FRAMEWORK_PATH.'models/usersmodel.php');
$adapter = $this->_registry->getSetting('adpt');
$usermodel = new UsersModel($adapter);
//Create or sync your table structure with the defined fields in the mapper
$usermodel->migrate();
// $id_user= $_GET['id_users'];
$user = $usermodel->query(" SELECT * FROM users where id_users='".$_GET['id_users']."' ");
$template = $this->_registry->getObject('tpl');
$template->set_file('user','updateuser.html');
foreach($user as $key => $value) {
// echo $value->Identifiant;
if( is_array($value) || is_object($value)) {
$template->set_var('Id_users',utf8_encode($value->Id_users));
$template->set_var('Identifiant',utf8_encode($value->Identifiant));
$template->set_var('Password', utf8_encode($value->Password));
} else {
echo '<pre>';
print_r ($value);
echo '</pre>';
}
$template->pparse('result_user', 'user');
}
}
}
?> |
un autre controleur qui va mettre à jour mon formulaire
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| <?php
class updateuserMultiActionController {
private $_registry;
public function __construct(Registry $registry){
$this->_registry = $registry;
}
public function updateuser_action()
{
require_once(FRAMEWORK_PATH.'models/usersmodel.php');
$adapter = $this->_registry->getSetting('adpt');
$usermodel = new UsersModel($adapter);
//Create or sync your table structure with the defined fields in the mapper
$usermodel->migrate();
$template = $this->_registry->getObject('tpl');
$template->set_file('user','gestionUtilisateurs.html');
$user=$usermodel->query(" update users SET Identifiant='".$_POST['Identifiant']."' ,Password='".$_POST['Password']." where id_users='".$_GET['id_users']."'
");
$template->pparse('result_user', 'user');
}
}
?> |
Vue:
ma page consulteruser.html qui permet d afficher les utilisateurs avec un lien modifié qui va appeler la page updateuser.html via la fonction ajax.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="views/css/css.css" />
<div align="center" >
<table >
<caption>GESTION DES UTILISATEURS</caption>
<thead>
<tr>
<th>Nom</th>
<th>Password</th>
<th>Supprimer</th>
<th>Modifier</th>
</tr>
</thead>
<tbody>
<tr>
<td id="use" >{Id_users}</td>
<td>{Identifiant}</td>
<td>{Password}</td>
<?php
?>
<td><a href="index.php?module=deleteuser&action=deleteuser"
onclick="javascript:if (!confirm('Voulez vous supprimer l'utilisateur Confirmez ?')) return false;">Supprimer</a></td>
<td> <a href="#" onclick="load_updateuser('views/updateuser.html'); ">Modifier</a></td>
</tr>
<tbody>
</table>
</div> |
ma fonction ajax qui va appeler la page upadatesuer.html
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| function load_updateuser(url) {
jQuery.ajax({
url:url,
type:"GET",
dataType:"html",
success: function(data, textStatus, rawRequest) {
jQuery("#centre").html(data);
},
error: function(rawRequest, textStatus, errorThrow) {
//jQuery(element).html("Impossible de charger les d�tails de la page...");
jQuery("#centre").html("Erreur de chargement...");
}
});
} |
et enfin ma page updateuser.html
qui va mettre a jour l'utilisateurs
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <link rel="stylesheet" type="text/css" href="css/css.css" />
<div align="center" >
<form action="index.php?module=updateuser&action=updateuser" id="formuser" method="post" enctype="multipart/form-data">
<fieldset id="addusers">
<ul>
<li>
<p class="adduser" align="center"> Update User</p>
</li>
<li>
<label> Id users :</label>
<input type="text" name="Id_users" value={Id_users} />
</li>
<li>
<label> Login :</label>
<input type="text" name="Identifiant" value={Identifiant} />
</li>
<li>
<label> Password :</label>
<input type="password" name="Password" value={Password} />
</li>
<li>
<input type="submit" name="update" value="update"/>
</li>
</ul>
</fieldset>
</form>
</div> |
mon model
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <?php
/**
* {0}
*
* @author DIENG KHALIDOU
* @version
*/
// User
class UsersModel extends phpDataMapper_Base
{
// Specify the data source (table for SQL adapters)
protected $_datasource = "users";
// Define your fields as public class properties
public $Id_users = array('type' => 'int', 'primary' => true);
public $Identifiant = array('type' => 'string', 'required' => false);
public $Password = array('type' => 'string', 'required' => false);
}
?> |
Ce que je veux est que si je clique sur le lien modifier cela appelle la page updateuser.html en lui transmettant les données de l'utilisateurs en cours en utilisant ajax.
Merci de votre aide.