Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > AJAX Как выбирать из DB данные пользователей по ID


Автор: vlad275 23.11.2009, 12:00
Как в AJAX  выбирать из DB данные пользователей по ID отправленные запросом POST, где ID=номер_пользователя_в_таблице? 

Хочется, чтобы после отправки запроса экран не перезагружался, а в полях просто обновлялась информация.

Автор: comtat 23.11.2009, 12:18
Какой js фреймворк используете или не используете?  Какой серверный язык прогр-ния?

Автор: vlad275 23.11.2009, 12:22
Использую PHP. С библиотекой еще не определился.

Автор: comtat 23.11.2009, 13:08
Для ExtJS можно использовать Ext.Ajax
Код

Ext.Ajax.request({
   url: 'foo.php', // Куда отправляем
   success: someFn, // Если успешно
   failure: otherFn, 
   params: { foo: 'bar' } // Передаваемые параметры
});

http://www.extjs.com/deploy/dev/docs/output/Ext.Ajax.html
Для jQuery http://docs.jquery.com/Ajax


Цитата(vlad275 @  23.11.2009,  12:00 Найти цитируемый пост)
выбирать из DB данные пользователей по ID отправленные запросом

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

Автор: brother79 23.11.2009, 13:29
Цитата(vlad275 @  23.11.2009,  12:00 Найти цитируемый пост)
Как в AJAX  выбирать из DB данные пользователей по ID отправленные запросом POST, где ID=номер_пользователя_в_таблице? 

Хочется, чтобы после отправки запроса экран не перезагружался, а в полях просто обновлялась информация.


Интересно поставленный вопрос.  Делаешь аякс запрос, получаешь ответ, обновляешь свою страницу. Лучше обмениваться json данными, на выходе получаешь готовую структуру. Как сам аякс вызывать - зависит от того, какие библиотеки используешь. Можно и руками, но это геморно. Обычно используют prototipe, jquery, extjs, другие мне не попадались пока. я за jquery. Просто в этих библиотеках предусмотренны особенности разных браузеров, и простая форма процедур, если руками - то могут попасться какиень-дь грабди с тем же ie например.

Автор: vlad275 23.11.2009, 13:37
А таким способом можно/лучше ? http://htmlweb.ru/ajax/example/search.php

Сейчас не могу понять почему $searchq  = $_GET['name']; ничего ничего не возвращает

Автор: vlad275 23.11.2009, 14:26
Кажется разобрался

Автор: comtat 23.11.2009, 14:36
Цитата

Parse error: syntax error, unexpected '=' in Y:\home\localhost\www\in-search.php on line 7

Не sql а $sql

Автор: vlad275 23.11.2009, 14:46
Точно. Вот так работает:

ajax_framework.js
Код
/* -------------------------- */
/*   XMLHTTPRequest Enable    */
/* -------------------------- */
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
} else {
request_type = new XMLHttpRequest();
}
return request_type;
}

var http = createObject();

/* -------------------------- */
/*        SEARCH              */
/* -------------------------- */
function searchNameq() {
searchq = encodeURI(document.getElementById('searchq').value);
document.getElementById('msg').style.display = "block";
document.getElementById('msg').innerHTML = "Searching for <strong>" + searchq+"";
// Set te random number to add to URL request
nocache = Math.random();
http.open('get', 'in-search.php?name='+searchq+'&nocache = '+nocache);
http.onreadystatechange =  searchNameqReply;
http.send(null);
}
function searchNameqReply() {
if(http.readyState == 4){
var response = http.responseText;
document.getElementById('search-result').innerHTML = response;
}
}




search.php
Код
<html>
    <head>
        <script language="javascript" src="ajax_framework.js"></script>
    </head>
    <body>
        <form id="searchForm" name="searchForm" method="POST" action="javascript:insertTask();">
            <div class="searchInput">
                <input name="searchq" type="text" id="searchq" size="30" onkeyup="javascript:searchNameq()"/>
                <input type="button" name="submitSearch" id="submitSearch" value="Search" onclick="javascript:searchNameq()"/>
            </div>
        </form>

        <h3>Search Results</h3>
        <div id="msg">Type something into the input field</div>
        <div id="search-result"></div>
    </body>
</html>


in-search.php
Код

<?php
    //ini_set('display_errors',1);
    error_reporting(E_ALL ^E_NOTICE);

    //Берем из строки http.open('get', 'in-search.php?name='+searchq+'&nocache = '+nocache);
    $myvar_searchq = $_GET['name'] ;
    //printf ($_GET['name']);
    $c = mysql_connect("localhost", "root", "") or die("Problem mysql_connect");
    mysql_select_db("variantdialog_99k_db1") or die("Problem mysql_select_db");
    $sql ="SELECT * FROM tCandidates WHERE intID=$myvar_searchq";
    //printf ($sql);
    $result = mysql_query($sql) or die("Problem mysql_query");
    $f = mysql_fetch_array ($result) or die ("Problem mysql_fetch_array");
    $r = $f['varcharName'];
    echo $r;
    
?>


Как лучше реализовать листание страниц, чтобы при нажатии на <a href=#><img src=arrowforward.gif></a> ID увеличивался на единицу, а при нажатии на  <a href=#><img src=backward.gif></a>
Создать на основе вышеприведенной функции функции в которых будут строки searchq=searchq+1 и searchq=searchq-1 соответственно?

Автор: comtat 23.11.2009, 16:18
Цитата(vlad275 @  23.11.2009,  14:46 Найти цитируемый пост)
Как лучше реализовать листание страниц

ИМХО, эти вопросы уже явно не относятся к применению фреймворков.

Для того чтобы, листать нужно знать Всего Кол-во страниц, Номер текущий страницы.

Цитата(vlad275 @  23.11.2009,  14:46 Найти цитируемый пост)
Создать на основе вышеприведенной функции функции в которых будут строки searchq=searchq+1 и searchq=searchq-1 соответственно? 

Использовать текущую ф-цию, только немного доработать, чтобы она умела работать с передаваемым номером страницы.
+1 или -1 можно и в javascript'е делать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)