Logo du forum
 

Forum TTH-News

| 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

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


Auteur
Sujet : Copier des infos dans un champ
wTb
Vétéran
Membre # 7349

 Avatar du membre
Lieu : Paris

Messages :
5864 (0.99 par jour)


Score :

Message du 02-12-2006 @ 1:18   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


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]
----------
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue."
Albert Einstein

Q9550@3.4Ghz, Asus P5E, 8Go DDR2 OCZ Reaper, Asus GTX580 OC, SSD Samsung 840Evo + Raptor 150go + 4To.
- Haut de page -
soulmanto
Codeur du forum
Membre # 5373

 Avatar du membre
Lieu : Lille

Messages :
13839 (2.29 par jour)


Score :

Message du 02-12-2006 @ 11:32   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

le Js et XmlHttpRequest seront tes amis! ;)
----------
Desktop : Core i7 2600 | Gigabyte GA-Z68MA-D2H-B3 | 8 Go DDR3 PC10600 | SSD UltraPlus 128 Go / HDD 500 Go / 1 To | Sapphire R9 280 3 Go | CoolerMaster RC690 | Windows 7
Asus MemoPad 10

Stromille powered !!!
- Haut de page -
wTb
Vétéran
Membre # 7349

 Avatar du membre
Lieu : Paris

Messages :
5864 (0.99 par jour)


Score :

Message du 03-12-2006 @ 13:07   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Ok merci je vais me renseigner alors.
----------
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue."
Albert Einstein

Q9550@3.4Ghz, Asus P5E, 8Go DDR2 OCZ Reaper, Asus GTX580 OC, SSD Samsung 840Evo + Raptor 150go + 4To.
- Haut de page -
soulmanto
Codeur du forum
Membre # 5373

 Avatar du membre
Lieu : Lille

Messages :
13839 (2.29 par jour)


Score :

Message du 03-12-2006 @ 18:11   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

si jamais tu t'en sors pas avec tes recherches, je t'acherai d'approndir un peu la chose! ;)
----------
Desktop : Core i7 2600 | Gigabyte GA-Z68MA-D2H-B3 | 8 Go DDR3 PC10600 | SSD UltraPlus 128 Go / HDD 500 Go / 1 To | Sapphire R9 280 3 Go | CoolerMaster RC690 | Windows 7
Asus MemoPad 10

Stromille powered !!!
- Haut de page -
wTb
Vétéran
Membre # 7349

 Avatar du membre
Lieu : Paris

Messages :
5864 (0.99 par jour)


Score :

Message du 03-12-2006 @ 23:42   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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
----------
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue."
Albert Einstein

Q9550@3.4Ghz, Asus P5E, 8Go DDR2 OCZ Reaper, Asus GTX580 OC, SSD Samsung 840Evo + Raptor 150go + 4To.
- Haut de page -
chani
Vétéran
Membre # 9009

 Avatar du membre
Lieu : METZ

Messages :
4161 (0.72 par jour)


Score :

Message du 04-12-2006 @ 9:00   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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.
----------
chani_tth sur PSN ;)
- Haut de page -
frednet
Vétéran
Membre # 3998

 Avatar du membre
Lieu : Lat: 49°20'24" Nord Long: 6°22'48" E

Messages :
2063 (0.34 par jour)




Message du 04-12-2006 @ 10:09   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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
Vétéran
Membre # 9009

 Avatar du membre
Lieu : METZ

Messages :
4161 (0.72 par jour)


Score :

Message du 04-12-2006 @ 12:16   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

ra encore ce satané ajax.... :D...
non je ne m'y mettrais pas ... (et oh, le php est déjà suffisament complet comme ça)
----------
chani_tth sur PSN ;)
- Haut de page -
wTb
Vétéran
Membre # 7349

 Avatar du membre
Lieu : Paris

Messages :
5864 (0.99 par jour)


Score :

Message du 04-12-2006 @ 13:18   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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.
----------
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue."
Albert Einstein

Q9550@3.4Ghz, Asus P5E, 8Go DDR2 OCZ Reaper, Asus GTX580 OC, SSD Samsung 840Evo + Raptor 150go + 4To.
- Haut de page -
chani
Vétéran
Membre # 9009

 Avatar du membre
Lieu : METZ

Messages :
4161 (0.72 par jour)


Score :

Message du 04-12-2006 @ 13:45   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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...
----------
chani_tth sur PSN ;)
- Haut de page -
frednet
Vétéran
Membre # 3998

 Avatar du membre
Lieu : Lat: 49°20'24" Nord Long: 6°22'48" E

Messages :
2063 (0.34 par jour)




Message du 04-12-2006 @ 16:41   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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
Vétéran
Membre # 9009

 Avatar du membre
Lieu : METZ

Messages :
4161 (0.72 par jour)


Score :

Message du 04-12-2006 @ 16:45   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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)
----------
chani_tth sur PSN ;)
- Haut de page -
wTb
Vétéran
Membre # 7349

 Avatar du membre
Lieu : Paris

Messages :
5864 (0.99 par jour)


Score :

Message du 04-12-2006 @ 19:01   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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 ! :)
----------
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue."
Albert Einstein

Q9550@3.4Ghz, Asus P5E, 8Go DDR2 OCZ Reaper, Asus GTX580 OC, SSD Samsung 840Evo + Raptor 150go + 4To.
- Haut de page -
frednet
Vétéran
Membre # 3998

 Avatar du membre
Lieu : Lat: 49°20'24" Nord Long: 6°22'48" E

Messages :
2063 (0.34 par jour)




Message du 04-12-2006 @ 23:07   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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
Vétéran
Membre # 7349

 Avatar du membre
Lieu : Paris

Messages :
5864 (0.99 par jour)


Score :

Message du 05-12-2006 @ 12:36   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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

[message édité le 05-12-2006 @ 12:36 Par wTb]
----------
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue."
Albert Einstein

Q9550@3.4Ghz, Asus P5E, 8Go DDR2 OCZ Reaper, Asus GTX580 OC, SSD Samsung 840Evo + Raptor 150go + 4To.
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.091 secondes