Witam.
Trochę szukałem w necie (głównie na polskich stronach bo jestem cienki bolek z angielskiego) na temat
Ajaxa a głównie gotowych rozwiązań typu
Advajax albo
Sajax,
JPSpan.
Jako, że znam się trochę na PHP Mysql i oczywiście HTMlu to niestety w JavaScript nie wiele potrafię, dlatego jakiekolwiek próby rozwiązania niektórych problemów, w których Ajax byłby mi bardzo pomocny kończą się porażką.
Przeglądałem różne artykuły tj te:
Link1Link2Link3i tym podobne i przyznam się szczerze, że są dla mnie mało zrozumiałe

Najbardziej mam problem z wykorzystaniem Advajax tak, żeby np co 5 sekund wysyłał zapytanie do mysql i wczytywał pewne dane i umieszczał je na stronie?
Docelowo, chciałbym takie rozwiązanie jakie jest zamieszczone w przykładach do biblioteki
JPSpan w katalogu examples\autocomplete2.html.
Znalazłem też coś takiego odnośnie XAJAX na stronie
http://www.php.rk.edu.pl/w/p/xajax/i po paru przeróbkach (gdyż w oryginale było parę błędów) Skrypt mi nadal nie działa:
<?PHP
require ('xajax/xajax_core/xajax.inc.php');
function getCities($sSearch)
{
// lista miast
"Aalburg",
"Aalsmeer",
"Aalten",
"Abcoude",
"Achtkarspelen",
"Alblasserdam",
"Albrandswaard",
"Alkemade",
"Alkmaar",
"Almelo",
"Almere",
"Alphen aan den Rijn",
"Alphen-Chaam",
"Ambt Montfort",
"Ameland",
"Amerongen",
"Amersfoort",
"Amstelveen",
"Amsterdam",
"Andijk",
"Angerlo",
"Anna Paulowna",
"Apeldoorn",
"Beek",
"Beemster",
"Beesel",
"Bellingwedde",
"Bennebroek",
"Bergambacht",
"Bergeijk",
"Bergen",
"Bergen op Zoom",
"Bergh",
"Bergschenhoek",
"Berkel en Rodenrijs",
"Bernheze",
"Bernisse",
"Best",
"Beuningen",
"Beverwijk",
"Binnenmaas",
"Bladel",
"Blaricum",
"Bleiswijk",
"Bloemendaal",
"Buren",
"Zwolle");
$sOut = "";
$nCount = 0;
foreach($aCities as $sCity)
{
/* szukamy w tablicy wartości pasujących do podanej frazy */
{
$nCount++;
/* trochę JS umożliwiającego kliknięcie na podpowiadaną wartość i wstawienie jej
do pola */
$sOut .= "<li><a href=\"onclick=\"javascript:document.getElementById('search').value='".$sCity."';document.getElementById('citybox').style.display = 'none';\"\">".$sCity."</a></li>";
$sLastHit = $sCity;
}
}
/* zakładamy limit 30 wyników
żeby nie wysyłać za dużo */
if($nCount > 31)
{
$sOut = "";
}
$objResponse = new xajaxResponse();
{
/* mamy dane to je wyświetlamy */
$sOut = "<ul>".$sOut."</ul>";
$objResponse->addScript("document.getElementById('citybox').style.display = \"block\"");
}
else
{
/* brak wyników */
$objResponse->addScript("document.getElementById('citybox').style.display = \"none\"");
}
/* Jeden wynik? automatyczna zmiana treści pola */
if($nCount == 1)
{
$objResponse->addScript("document.getElementById('citybox').style.display = \"none\"");
$objResponse->addScript("document.getElementById('search').value = \"".$sLastHit."\"");
}
$objResponse->addAssign("citybox", "innerHTML", $sOut);
return $objResponse->getXML();
}
$objAjax = new xajax();
$objAjax->configure('javascript URI', 'xajax/');
$objAjax->registerFunction('getCities');
$objAjax->processRequest();
?>
<html><head>
<?php $objAjax->printJavascript();
?>
</head><body>
<input autocomplete="off" type="text" class="textbox" name="search" value="" id="search" onkeyup="xajax_getCities(document.getElementById('search').value);"/><br />
<div id="citybox"> </div>
W tym rozwiązaniu, wypełniając formularz danymi, po wpisaniu już pierwszej litery pokazuje się rozwijalna lista pasujących do wpisanych liter nazw miast. Tak wg autora powinno działać, ale u mnie nie dzieje się nic :/
Pozdrawiam, z góry dziękuje za jakiekolwiek wskazówki i sorry, jeżeli zadaje lamerskie pytania.
Ten post edytował emjot27 15.01.2008, 11:07:26