Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/AJAX], problem z dwoma selektami
kropla
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 16.12.2005

Ostrzeżenie: (10%)
X----


witam możecie mi powiedzieć co jest nie halo w tym skrypcie który w pierwszym selekcie ma pobierać wartośći z jednej tabeli (Kategorię) a w drugim selekcie są wyciągane wartości z drugiej tabeli (podkategoria)

poniżej skrypt

<?php
$url = 'localhost';
$login = '';
$pass = '';
$baza ='';

$polaczenie=mysql_connect($url,$login,$pass);
$wybor=@mysql_select_db($baza);


$table_name = "kategoria_programow";
$table_name2 = "kategoria_programowii";

$sql = "SELECT * FROM $table_name";
$result = mysql_query($sql);
?>
<head>
<script type="text/javascript" src="./advajax.js"></script>
<script>
<!--
function zmien(id)
{
var adres = "pobierz2.php?id="+id;
advAJAX.get({
url: adres,
onLoading:function(obj) {document.getElementById("lista2").innerHTML='<img src="loading.gif" />'; },
onSuccess:function(obj) { document.getElementById("lista2").innerHTML=obj.responseText; },
onError:function(obj) {alert(obj.responseText); }
});
}
//-->
</script>



</head>
<select name="lista1" onchange="zmien(this.value);">
<?php
while ($row = mysql_fetch_array($result)) {
$id=$row['id'];
$nazwa=$row['Nazwa'];
echo '<option value='.$id.'>'.$nazwa.'</option>';
}
?>
</select>



<select name="lista2" onchange="zmien(this.value);">
<?php
while ($row3 = mysql_fetch_array($result3)) {
$id=$row['id'];
$nazwa=$row['Podkategoria'];
echo '<option value='.$id.'>'.$nazwa.'</option>';
}
?>
</select>

w pliku pobierz2.php jest zapytanie z warunkiem z przekazanm id i wykonanie zapytania natomiast while do niego jest już spowrotem w selekcie.

powiem dokładniej że w pierwszym selekcie listowane są kategorie natomiast select z podkategoriami zostaje pusty i nie ma na nim żadnej akcji - tak jakby nie bylo przekazywane id pola które wybrałem kategorii

dokłądniej powiem ze lista kategorii w pierwszym selekcie się pojawia natomiast drugi selekt pozostaje cały czas pusty - tak jakby nie było przekazywane id pola z pierwszego selecta
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Ive
post
Post #2





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

Ostrzeżenie: (0%)
-----


  1. <select name="lista2" onchange="zmien(this.value);">
  2. <?php
  3. while ($row3 = mysql_fetch_array($result3)) {
  4. $id=$row['id'];
  5. $nazwa=$row['Podkategoria'];
  6. echo '<option value='.$id.'>'.$nazwa.'</option>';
  7. }
  8. ?>
  9. </select>

ten kawalek.
zamien na:
  1. <select name="lista2" onchange="zmien(this.value);">
  2. <?php
  3. while ($row3 = mysql_fetch_array($result3)) {
  4. $id=$row3['id'];
  5. $nazwa=$row3['Podkategoria'];
  6. echo '<option value='.$id.'>'.$nazwa.'</option>';
  7. }
  8. ?>
  9. </select>

ze zlej zmiennej pobierales - 'row' zamiast 'row3'

PS. BBCode... uzywaj...
Go to the top of the page
+Quote Post
artur81
post
Post #3





Grupa: Zarejestrowani
Postów: 252
Pomógł: 2
Dołączył: 4.12.2004
Skąd: Skierniewice

Ostrzeżenie: (10%)
X----


heh, widzę że jednak nie do końca zrozumiałeś to co pisałem w poprzednim poście
1. W funkcji JS zmien() masz ładowanie wyniku do elementu o id lista2, a takiego elementu nie masz.
Nie nadałeś drugiemu selectowi id="lista2".
2. Do drugiego selecta nie potrzebna jest funkcja zmien() bo i tak miało to działać tak, że zmieniasz pierwszy select a do drugiego idą wyniki.
Nie wiem też czy poprawiłeś sobie bazę wg tego co ci pisałem czyli żeby w podkategoriach, kategoria nie była nazwą tylko id.
Jak sobie nie będziesz mógł poradzić to wklei tutaj to co masz zrobione do tej pory to poprawię.
Może jak zobaczysz jak działa to będziesz wiedział, ale najpierw popraw tą bazę i wklej SQL, niechce mi się przerabiać tych podkategorii, wygodniej ci będzie tak pracować, a poza tym operacje na bazie są szybsze jeśli działasz na cyfrach a nie tekście.


--------------------
Go to the top of the page
+Quote Post
kropla
post
Post #4





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 16.12.2005

Ostrzeżenie: (10%)
X----


oki poradziłem sobie z tym -> skrypt działa mi , natomiast nie wiem dlaczego jak "wsadzam" go do mojej stronki to przestaje (chodzi o przekazanie zmiennych z tych dwóch pól). Dzieje się to w momencie jak dodałem insert table ... o co chodzi?questionmark.gif jakie jest rozwiązanie na to ?

przekazuje wartosc tylko pierwszego selecta -> drugiego już nie ...
Go to the top of the page
+Quote Post
artur81
post
Post #5





Grupa: Zarejestrowani
Postów: 252
Pomógł: 2
Dołączył: 4.12.2004
Skąd: Skierniewice

Ostrzeżenie: (10%)
X----


pokaż kod, może gdzieś się pomyliłeś
podpiąłeś advAJAX na stronę i umieściłeś go na serwerze?


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:44