2010-06-07 6 views
2

Je crée une page admin où j'ai plusieurs textboxes. Quand j'entre l'ID utilisateur dans une zone de texte je veux afficher le nom d'utilisateur dans la zone de texte suivante quand l'admin passe à la zone de texte suivante.pour cela je peux utiliser ajax ou javascript? lequel sera le meilleur? Comment puis-je le faire par javascript.comment accéder à la base de données via javascript?

+2

AJAX via JavaScript, évidemment ... –

+0

par ailleurs, un accès direct via JS à votre base de données est très dangereux à moins que le filtrage est effectué. Cela signifie que les utilisateurs peuvent modifier toute votre base de données. – mauris

+0

@thephpdeveloper: corrigez-moi si je me trompe, mais je ne pense pas que vous puissiez accéder directement à la base de données via JS, non? – nico

Répondre

2

Vous ne pouvez pas accéder à la base de données directement via Javascript.

Vous pouvez utiliser AJAX pour appeler un Serverside (par exemple PHP) page qui interroge la base de données si

+0

pouvez-vous écrire la syntaxe? – nectar

+0

@nectar: ​​Voici un bon début http://www.w3schools.com/Ajax/Default.Asp – nico

0

Utilisez un appel AJAX pour obtenir les données dont vous avez besoin d'un script côté serveur (ici php) et insérez le résultat de l'appel dans la zone de texte souhaitée.

0

Une meilleure utilisation Mootools, JQuery, YUI ou d'un cadre de toute autre pour effectuer les requêtes Ajax. Cela réduira votre temps de développement. Pour plus d'informations check apis de jQuery:

http://api.jquery.com/category/ajax/

2

La réponse c'est AJAX, mais avant tout, il vaut mieux si vous comprenez ce AJAX est: Asynchronous JavaScript And XML. Ensuite, pour simplifier votre tâche, il est préférable d'utiliser un framework javascript comme jQuery ou mootools.
Je suggère personnellement jQuery.

+3

NO! S'il vous plaît, arrêtez de dire que jQuery résoudra tous ses problèmes. N'utilisez PAS jQuery (immédiatement): apprenez d'abord AJAX, codez-le vous-même, lisez des tutoriels, rencontrez des erreurs, comprenez ce qui se cache derrière. Ensuite, si vous le souhaitez, passez à jQuery mais n'utilisez pas aveuglément des outils sans savoir ce qu'ils font. EDIT: bien sûr, c'est un commentaire dirigé vers toutes les réponses à propos de jQuery, pas seulement celui-ci en particulier – nico

+0

@nico, je ne suis pas d'accord. Tout le point d'une bibliothèque comme jQuery est de vous protéger de tous les détails affreux propres au navigateur. Cela aide à les comprendre finalement, mais je ne pense pas que ce soit une condition préalable. C'est pourquoi jQuery est si génial qu'il vous permet de faire des choses avancées d'une manière rapide et (généralement) sûre. Vous ne pensez pas que chaque programmeur devrait d'abord apprendre l'assembleur, n'est-ce pas? :) –

+1

@Ian Varley: Non, bien que je pense qu'à un certain point, chaque programmeur devrait au moins apprendre la ** base ** de l'assembleur. Je ne dis pas qu'il devrait réécrire jQuery, Dieu non! Juste qu'il peut écrire une simple "bibliothèque AJAX" même pas un navigateur croisé, juste pour le navigateur qu'il utilise. De cette façon, il va apprendre comment le processus fonctionne et quels sont les problèmes avec lui. Je l'ai fait et il n'a pas fallu plus de quelques jours pour obtenir quelque chose de fonctionnel. Alors bien sûr, vous pouvez commencer avec JQuery, le faire fonctionner et ensuite comprendre comment cela fonctionne, mais personnellement, je trouve qu'il est difficile de le faire par la suite. – nico

0

Vous aurez besoin d'utiliser ajax qui est de 9/10 javascript quand même. Je suggère d'utiliser un framework JS pour que vous n'ayez pas à coder pour différents navigateurs. Ensuite, vous aurez besoin de quelque chose du côté serveur qui traitera la requête et vous crachera les données requises. Les formats populaires sont XML (le x dans ajax), JSON, ou tout simplement HTML. De toute façon, vous aurez besoin d'un rappel javascript pour traiter le résultat (ou une condition d'erreur, ne l'oubliez pas) et remplir votre zone de texte. Personnellement, je préfère juste renvoyer des fragments HTML, mais si vous avez un framework, vous y trouverez probablement du XML et du JSON.

0

Aucun ajax ni javascript requis.
Faites simplement une liste alphabétique de tous les utilisateurs avec des liens pour éditer la page. Vous pouvez également ajouter à cette page un formulaire avec une seule zone de texte pour entrer l'ID utilisateur manuellement.
Les liens et le formulaire mènent à la page d'édition qui utilise l'ID utilisateur de la chaîne de requête pour extraire les utilisateurs.

0

La première étape consiste à créer un script PHP qui enverra des données analysables à JavaScript. Ne pas autoriser JavaScript à transmettre des requêtes SQL brutes à votre PHP.

<?php 
$sqlGetName = $mysqli->prepare("SELECT id, name FROM users WHERE id=?"); 
$sqlGetName->bind_param("i", $_GET['id']); 
$sqlGetName->execute(); 

$result = array('success' => false, 'id' => null, 'name' => null); 

$sqlGetName->bind_result($result['id'], $result['name']); 

if($sqlGetName->fetch()) { 
    $result['success'] = true; 
} 

echo json_encode($result); 

Ensuite, utilisez JavaScript pour récupérer les valeurs. L'exemple ci-dessous utilise la bibliothèque MooTools par souci de simplicité, mais pourrait être fait avec une autre bibliothèque ou dans du JavaScript courant.

var jsonRequest = new Request.JSON({url: 'get_user.php', 
    onSuccess: function(result) { 
    if(result.success) { 
     alert(result.id + ': ' + result.name); 
    } else { 
     alert('Not Found'); 
    } 
    } 
}); 

jsonRequest.get({'id': 3}); 
3
<script> 
    function showUser(str) { 
     if (str=="") { 
      document.getElementById("spName").innerHTML=""; 
      return; 
     } 

     if (window.XMLHttpRequest) { 
      // code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
     } else { 
      // code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

     xmlhttp.onreadystatechange=function() { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
      document.getElementById("spName").innerHTML=xmlhttp.responseText; 
      } 
     } 

     xmlhttp.open("GET","getUserName.php?q="+str,true); 
     xmlhttp.send(); 
    } 
</script> 

getUsreName.php

<?php 

$q=$_GET["q"]; 

$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="pnpdb"; // Database name 

// Connect to server and select databse. 
$link = mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name",$link)or die("cannot select DB"); 


$sql="SELECT name FROM tblprofile WHERE userId = '".$q."'"; 

$result = mysql_query($sql); 

$row = mysql_fetch_array($result); 

$name =$row['name']; 

if($name == '' || empty($name)) { 
    echo "<b>ID not found.</b>"; 
} else { 
    echo "<b>".$name."</b>"; 
} 

mysql_close($link); 
?> 
Questions connexes