Logo du forum
 

Forum TT-Hardware

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [PHP] » Copier des infos dans un champ
Login Mot de passe

1 visiteurs sur ce topic (0 membre(s), 1 invité(s) )

Auteur
Sujet : Copier des infos dans un champ
wTb



 






Message du 02-12-2006 @ 1:18


Bonjour,


J'ai besoin, lorsque l'utilisateur clique sur un lien, de copier des informations vers un champ sans refresh la page.

Je m'explique un peu mieux, sur ma page web j'ai un champ de type 'input type="text"', juste à côté de ce champ il y a un lien de type 'a href="?p=&action=add"' qui appel du code php sur cette meme page. Dans ce code je me connecte à ma bdd fais un select pour recuperer des informations. J'aimerais lorsque l'on clique sur ce lien copier les informations recupérées vers ce champ input. Et celà si possible sans refresh la page.

Si vous voyez comment faire j'attends vos réponses :)


Merci par avance.

[message édité le 02-12-2006 @ 1:20 Par wTb]
- Haut de page -
Soulmanto



 






Message du 02-12-2006 @ 11:32

le Js et XmlHttpRequest seront tes amis! ;)
- Haut de page -
wTb



 






Message du 03-12-2006 @ 13:07

Ok merci je vais me renseigner alors.
- Haut de page -
Soulmanto



 






Message du 03-12-2006 @ 18:11

si jamais tu t'en sors pas avec tes recherches, je t'acherai d'approndir un peu la chose! ;)
- Haut de page -
wTb



 






Message du 03-12-2006 @ 23:42

En fait j'arrive à partir du javascript à copier des informations d'un champ à un autre ou des informations entrées en dur dans le code.

Mais acceder à une bdd pour recuperer des informations en javascript alors là... :o
- Haut de page -
Chani



 






Message du 04-12-2006 @ 9:00

et pour cause avec JS ce n'est pas possible ....

si tu veux accéder à ta base, donc utiliser du code PHP, tu est obligé de faire un refresh.. mais tu peux le faire de manière transparente pour l'opérateur.

Si tu ne veux pas de refresh, il ne faut pas utiliser de base de données, ou alors créer du code JS avec tous les choix possible pour l'opérateur, à partir de ta base de données.
- Haut de page -
frednet



 






Message du 04-12-2006 @ 10:09

Chani a écrit

et pour cause avec JS ce n'est pas possible ....

si tu veux accéder à ta base, donc utiliser du code PHP, tu est obligé de faire un refresh.. mais tu peux le faire de manière transparente pour l'opérateur.

Si tu ne veux pas de refresh, il ne faut pas utiliser de base de données, ou alors créer du code JS avec tous les choix possible pour l'opérateur, à partir de ta base de données.



Il suffit de le faire en ajax... comme le disait Soulmanto (tiens pour une fois je n'ai pas ecorche ton pseudo :D)

L'idee c'est d'injecter du code HTML via Javascript apres avoir fait une requete via XmlHttpRequest. Moi je l'utilise pour l'authentification de mes utilisateurs...

@+ Fred
- Haut de page -
Chani



 






Message du 04-12-2006 @ 12:16

ra encore ce satané ajax.... :D...
non je ne m'y mettrais pas ... (et oh, le php est déjà suffisament complet comme ça)
- Haut de page -
wTb



 






Message du 04-12-2006 @ 13:18

Je m'en doutais un peu que je devrais passer par ajax pour afficher des informations sans refresh, mais je n'y connais encore rien....

Disons que si vraiment c'est necessaire je veux bien que la page se refresh mais comme avant cette étape l'utilisateur ajoute des informations dans un champ qui sont ajoutées dans une bdd, j'ai peur qu'en faisant un refresh plus bas ca les ajoute une seconde fois.
- Haut de page -
Chani



 






Message du 04-12-2006 @ 13:45

ba nan, il suffit que tu vérifie les champs avant de faire un ajout dans la base de données.
de même tu peux avoir un bouton ou un lien qui n'effectue pas la même action...
- Haut de page -
frednet



 






Message du 04-12-2006 @ 16:41

bon aller ce soir en rentrant je t'enverrai mon code ajax qui fait l'authentification et il suffira de l'adapter pour ton cas... :D

considere que c'est ton cadeau de noel :D :D :D

@+ Fred
- Haut de page -
Chani



 






Message du 04-12-2006 @ 16:45

frednet a écrit

bon aller ce soir en rentrant je t'enverrai mon code ajax qui fait l'authentification et il suffira de l'adapter pour ton cas... :D

considere que c'est ton cadeau de noel :D :D :D

@+ Fred



Tiens t'a raison.. comme ça j'en profiterais pour vois à quoi ça ressemble :D (pour pouvoir mieux critiquer :D)
- Haut de page -
wTb



 






Message du 04-12-2006 @ 19:01

frednet a écrit

bon aller ce soir en rentrant je t'enverrai mon code ajax qui fait l'authentification et il suffira de l'adapter pour ton cas... :D

considere que c'est ton cadeau de noel :D :D :D

@+ Fred




Oh comme c'est gentil :p Merci d'avance ! :)
- Haut de page -
frednet



 






Message du 04-12-2006 @ 23:07

alors dans l'ordre:

la fonction java script:

Code :


// On soumets le formulaire d'authentification
function sendForm() {
if ( (document.getElementById('email').value.length < 7) || (document.getElementById('mdp').value.length < 3) ) {
showError();
}
else {
document.getElementById('authentificationNotice').innerHTML='<img src="img/wait.gif" style="width: 16px; height: 16px;" alt="" /" alt="" /> Identification en cours...';

var xhr=null;

if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

// Quand la réponse arrivera, on vérifie si la personne est authentifiée ou pas
xhr.onreadystatechange=function() {
if (xhr.readyState == 4) /* 4 : état "complete" */ {
if (xhr.status == 200) /* 200 : code HTTP pour OK */ {
if (xhr.responseText == "welcome") {
window.location.replace( "myhome.php" );
}
else {
showError();
}
}
}
}

// On envoie la requete
xhr.open("POST", "identification.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send( "email=" + document.getElementById('email').value + "&password=" + document.getElementById('mdp').value + "&availwidth=" + screen.availWidth );
}
}

// On affiche le message d'erreur
function showError() {
document.getElementById('authentificationNotice').innerHTML='<span class="erreur">L\'email et/ou le mot de passe est incorrect ou inexistant.</span>';
}




La boite de dialogue pour s'identifier:
Code :


<!-- Boite de dialogue d'authentification -->
<div id="boxConnect">
<FORM METHOD="POST" ACTION="java script:sendForm()" ID="identification">
<table border="0" cellpadding="1" cellspacing="2">
<tr>
<td class="boxNomForm">Votre email :<td>
<td class="boxNomForm" colspan="2">Mot de passe :<td>
<tr>
<tr>
<td valign="top"><input type="text" name="login" id="email" value="" size="15" /><td>
<td valign="top"><input type="password" name="motdepasse" id="mdp" value="" size="15" /><td>
<td valign="top"><input type="submit" value="Ok" /><td>
<tr>
<tr>
<td colspan="3"><div id="authentificationNotice"></div><td><tr>
<tr>
<td>
<a href="inscription.php" class="boxLien">Pas encore membre ?</a>
<td>
<td colspan="2">
<a href="sendmdp.php" class="boxLien">Mot de passe oublié ?</a>
<td>
<tr>
<table>
</FORM>
</div>



Et enfin le fichier indentification.php qui contient la requete pour identifier le user:
Code :


<?php
session_start();

// Inclusion des fichiers necessaires
require_once("inc/config.inc.php");

if (!isset( $_POST['email'] ) || !isset( $_POST['password'] ) ) {
throwException( "pas de champ email/password", WARNING_LEVEL, 'UTILISATEUR_INEXISTANT');
}
else {
$email = strip_tags ( stripslashes( $_POST['email'] ) );
$password = strip_tags( stripslashes ( $_POST['password'] ) );

if (! validerMail( $email) || strlen($password) < 5) {
throwException( "Email non valide ou password trop petit", WARNING_LEVEL, 'UTILISATEUR_INEXISTANT');
}
else {
// Identification de l'utilisateur
$table = $conn->getTable("User");
$dql = "UPPER(email) LIKE '" . strtoupper($email) . "' AND password LIKE '" . md5($password) . "'";
$users = $table->findByDql( $dql );

if ($users->count() != 1) {
throwException( $dql, WARNING_LEVEL, 'UTILISATEUR_INEXISTANT');
}
else {
$_SESSION['user'] = serialize( $users[0] );

// On sauvegarde la largeur de l'écran en pixels
if ( isset( $_POST['availwidth'] ) && is_numeric( $_POST['availwidth'] ) && $_POST['availwidth'] > 0 ) {
$_SESSION['availwidth'] = ($_POST['availwidth'] - 40);
}
else {
$_SESSION['availwidth'] = 1000; // largeur du document en 1024x768
}

echo "welcome";
}
}
}

if ( getExceptionMessage('UTILISATEUR_INEXISTANT') ) {
echo "notwelcome";
}

?>



Alors le principe c'est qu'on a une boite de dialogue avec un formulaire qui appelle la fonction javascript "sendForm()". Cette fonction appelle la page php sur le serveur qui execute reellement la requete (ne faite pas attention chez moi j'utilise phpdoctrine je ne fais donc pas de requete SQL directe :D)

cette page affiche un message via "echo [...]" et la fonction javascript recupere ce code et le test. En fonction du resultat; on affiche soit un message d'erreur dans un div ou alors on redirige l'utilisateur sur la 1ere page de son compte...

Voila si vous avez des questions n'hesitez pas :D

Enjoy :D

@+ Fred


[message édité le 04-12-2006 @ 23:08 Par frednet]
- Haut de page -
wTb



 






Message du 05-12-2006 @ 12:36

Merci Fred je vais étudier tout ça cet aprem :smilejap:

[message édité le 05-12-2006 @ 12:36 Par wTb]
- Haut de page -

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2006

Valid XHTML 1.0 Transitional

Page générée en 0.116 secondes