как получить доступ к базе данных через JavaScript? - PullRequest
2 голосов
/ 07 июня 2010

Я создаю одну страницу администратора, где у меня есть несколько текстовых полей. Когда я вхожу ID пользователя в одно текстовое поле, я хочу отобразить имя пользователя в следующем текстовом поле, когда администратор переходит к следующему текстовому полю. Для этого я могу использовать ajax или javascript? какой из них будет лучше? как я могу сделать это через JavaScript.

Ответы [ 8 ]

3 голосов
/ 07 июня 2010
<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);
?>
2 голосов
/ 07 июня 2010

Ответ - AJAX, но прежде всего лучше, если вы поймете, что такое AJAX : асинхронный JavaScript и XML. Тогда для упрощения вашей задачи лучше использовать среду javascript, например jQuery или mootools .
Я лично предлагаю JQuery.

2 голосов
/ 07 июня 2010

Вы не можете получить доступ к БД напрямую через Javascript.

Вы можете использовать AJAX для вызова серверной (например, PHP) страницы, которая запрашивает БД, хотя

0 голосов
/ 07 июня 2010

Первым шагом является создание сценария PHP, который будет отправлять анализируемые данные в JavaScript. Не разрешайте JavaScript передавать необработанные SQL-запросы вашему 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);

Затем используйте JavaScript для получения значений. В приведенном ниже примере для простоты используется библиотека MooTools , но ее можно сделать с другой библиотекой или с обычным старым обычным JavaScript.

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});
0 голосов
/ 07 июня 2010

Не требуется ajax или javascript.
Просто составьте алфавитный список всех пользователей со ссылками для редактирования страницы. Вы также можете добавить на эту страницу форму с одним текстовым полем для ввода идентификатора пользователя вручную.
И ссылки, и форма ведут на страницу редактирования, которая использует ID пользователя из строки запроса для получения данных о пользователях.

0 голосов
/ 07 июня 2010

Вам нужно будет использовать ajax, который в любом случае равен javascript 9/10. Я предлагаю использовать JS-фреймворк, чтобы вам не приходилось кодировать для разных браузеров. Тогда вам понадобится что-то на стороне сервера, которое обработает запрос и предоставит вам необходимые данные. Популярные форматы: XML (x в ajax), JSON или просто старый HTML. В любом случае вам понадобится обратный вызов javascript для обработки результата (или условия ошибки, не забудьте об этом) и заполнения текстового поля. Лично я предпочитаю просто возвращать фрагменты HTML, но если у вас есть возможности для фреймворка, вы найдете в нем обработку XML и JSON, поэтому сходите с ума.

0 голосов
/ 07 июня 2010

Лучше использовать Mootools, jQuery, YUI или любую другую инфраструктуру js для выполнения запросов Ajax. Это сократит ваше время разработки. Для получения дополнительной информации проверьте API jQuery:

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

0 голосов
/ 07 июня 2010

Используйте AJAX-Call для получения необходимых данных из серверного скрипта (здесь php) и вставьте результат вызова в нужное текстовое поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...