qbas-s
5.02.2010, 16:48:37
Witam mój problem polega na tym, że korzystając z ajaxa i wczytując poprzez niego plik .php który próbuje łączyć się z mysql wyskakują mi błędy:
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\usr\www\pr_inz\public\user_panel\choose_cat.php on line 7
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\usr\www\pr_inz\public\user_panel\choose_cat.php on line 7
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\usr\www\pr_inz\public\user_panel\choose_cat.php on line 8
Połączenie z bazą jest prawidłowe, bo bez pośrednictwa js jest ok.
Tak ładuje plik php:
function getData(dataSource, divID)
{
if(XMLHttpRequestObject)
{
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("GET", dataSource);
XMLHttpRequestObject.onreadystatechange = function ()
{
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200)
{
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}
XMLHttpRequestObject.send(null);
}
}
Co jest nie tak?
Dodatkowo jak w ładowanym pliku zobię coś takiego echo "łłłłłłąąąąąąćććć"; to mam krzaki.
Bez JS użycia jest normalnie(tak jakby js zmieniał kodowanie)
Pomocy
Co do kodowania problem rozwiązany:)
XMLHttpRequestObject.overrideMimeType('text/html; charset=UTF-8');
zamiast UTF miałem ISO:)
Nadal pozostaje problem z bazą:/
230005
5.02.2010, 17:34:18
Bez kodu php to sobie możemy pozgadywać, a ja zgaduję, że skrypt oczekuje jakichś danych w jednej z tablic superglobalnych i ich nie dostaje. Czy użytkownik odbc to właściwy użytkownik tej bazy?
PS.
Zmieniłbym tytuł tematu
qbas-s
5.02.2010, 17:37:40
Kod php jest jak z elementarza i bardzo podstawowy przeznaczony do celów testowych:)
$q="SELECT * FROM category_2 where previous_cat='2'";
echo "<select id=\"cat2\" name=\"cat2\" size=\"13\" >"; echo "<option selected>$row[name]</option>"; echo "<option>$row[name]</option>";
wczytuje go poprzez funkcję getDate();
Baza posiada nazwę użytkownika root, nie wiem skąd się wzieło ODBC :///
Mephistofeles
5.02.2010, 18:03:34
A gdzie się łączysz z bazą?
qbas-s
5.02.2010, 18:09:11
wcześniej już napisałem "Połączenie z bazą jest prawidłowe, bo bez pośrednictwa js jest ok."
mysql_conn.php jest includowany do index.php
Wszystko działa elegancko do momentu kiedy js wczytuje php które próbuje robić zapytanie do mysq
230005
5.02.2010, 19:29:02
Cytat
Połączenie z bazą jest prawidłowe, bo bez pośrednictwa js jest ok
Sam nieraz podobnie tu pisałem, a potem się okazywało, że wcześniej nie było ok, po prostu błąd sobie występował tylko w określonych przypadkach. Pokaż cały kod który jest używany.
Swoją drogą, to co nam po tym kodzie który dałeś, skoro błędy ewidentnie wskazują na miejsce gdzie się łączysz...
qbas-s
5.02.2010, 23:37:33
include("public/config.php");
or
die("Błąd połącznie z bazą danych");
$host, $db, $user i $pass oczywiście pobieram z confin.php
batman
5.02.2010, 23:48:25
A czy dołączasz ten plik do skryptu php, który wywołujesz ajaxem? Jeśli nie, to stąd Twoje problemy.
qbas-s
6.02.2010, 00:28:10
Ogólny zarys połączenia do mysql jest taki:
-- index.php - na początki incuduje plik który łączy się z php
-- index.php - w trakcie są includowane inne pliki które są komponentami i w nich już nie trzeba wstawiać połączenia do mysql bo jest to już zainicjowane w index
Plików includowanych jest mnóstwo. Wszystkim zarządzają instrukcje warunkowe. W wielu plikach jest łączenie się z mysql i działa to bardzo dobrze.
Problem jest tylko wtedy jak za pomocą ajax wczytuje do diva plik php który chce się łączyć z mysql. Nie można zainicjować w tym przypadki
kolejnego razu połącznia bo będzie błąd.
W akcie desperacji nawet to zrobiłem ale efekt był taki jak się spodziewałem:/
-- index.php - na końcu jest zamknięcie połącznia
Dodatkowo jak w php wczytywanym przez getData() zrobię coś takiego
<script type="text/javascript">
document.write('test');
</script>
To napis test się nie pojawia - tak jakby JS w tym pliku byłby ignorowany:/
Nie rozumie w czym problem:/
batman
6.02.2010, 08:48:33
A jak się nazywa plik, do którego odwołujesz się ajaxem? I czy w tym pliku dodałeś połączenie z bazą danych?
qbas-s
9.02.2010, 12:18:38
plik nazywa się choose_cat.php
Tak jak wcześniej napisałem ten plik jest includowany do index.php gdzie już jest zainicjowane połączenie z bazą
nospor
9.02.2010, 12:23:17
no ale skoro ty sie odwolusze bezposrednio do choose_cat.php to jemu zwisa i powiewa gdzie on jest includowany. On nie dostaje połaczenia i koniec kropka. A nie dostaje bo ty go includujesz w index.php, ktore ma sie nijak do twojego aktualnego wywolania.
przenosze, bo na chwile obecną z ajaxem to nie ma zadnego związku
qbas-s
9.02.2010, 12:43:26
widocznie jakoś się ma skoro mam do index.php includowane pliki tylko w php które wykonują zapytania do mysql i im wystarcza tylko to że na początku index.php includuje plik php z połączeniem do bazy.
nospor
9.02.2010, 12:46:08
sam napisales ze ajaxem wywolujesz bezposrednio plik choose_cat.php.
A sam plik choose_cat.php includujesz dopiero w index.php
Naprawdę nie widzisz tu pewnej rozbieżnosci?
qbas-s
9.02.2010, 13:50:52
Miałeś rację przyznaje soga:)
W momencie kiedy includuje się coś przez ajaxa wtedy ścieżki do plików trochę się zmieniają.
A czemu podczas includowaniu pliku przez ajax nie działa js który jest zawarty w tym pliku? np:
<script type="text/javascript"> document.write('test'); </script>
nospor
9.02.2010, 13:53:19
kod js nie jest domyslnie wykonywany. Jakbys uzyl np. jQuery i html() to by ci sie js wykonal.
qbas-s
9.02.2010, 13:56:23
domyślam się że tej domyślnie ustawionej opcji nie da się zmodyfikować?
nospor
9.02.2010, 14:41:42
Domyslna z ciebie bestia
qbas-s
9.02.2010, 14:48:53
przeczytałem Twój opis pod postami i jakoś tak samo mi przyszło:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.