Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] syntax/zap. asynchroniczne
Forum PHP.pl > Forum > XML, AJAX
devurien
Na podstawie id_produktu chciałem sobie wydobyć pewne dane. (sam php zwraca pięknie jsona)
I tak mam sobie :
  1. <p>
  2. <label>INDEKS PRODUKTU:</label>
  3. <select id="produkt_id" name="produkt_id">
  4. <?php
  5. foreach($user->getIdPrdukty() as $key) {
  6. if($key['id_produktu'] == $row['produkt_id']) {
  7. echo "<option selected>".$key['id_produktu']."</option>";
  8. }else {
  9. echo "<option>".$key['id_produktu']."</option>";
  10. }
  11. }
  12. ?>
  13. </select>
  14. </p>


i

CODE

var selectName = $(this).attr("name");

if(selectName == 'produkt_id')
{
val = $('option:selected', $(this)).text();
$.ajax({
zm: val,
type: "GET",
url: "php_js.php?action=zlecenia&id="+val,

success:function(data){

var decoded = eval("(" + data + ")");
$(".opis").attr({
value: decoded.klient +"_"+ decoded.kolekcja +"_"+ decoded.format +"_"+ decoded.rodzaj_wyrobu +"_"+ decoded.ilosc_kartek
});
return true;
}

});
}


Firebug:

syntax error
[Break on this error] [action] => zlecenia\n
zlecenia.js (wiersz 24)
(pogrubiona znaki w kodzie '});').

Nigdy wcześniej się nie przyglądałem i nie wiem czy powinna być tam łamanie linii.. może ktoś mi wskaże błąd bo mnie już roznosi walczę z tym trywialnym problemem pół dnia.
erix
Czemu używasz eval zamiast getJSON?

Poza tym, nie ma sensu zlepiać żądania. winksmiley.jpg

A co do attr, przecież jak ustawiasz tylko jeden atrybut, to możesz użyć konstrukcji attr('asd', 'sss').
devurien
Cenne rady,

grzebałem, doczytywałem przez ostatnie dni i skleciłem to:
  1. $("select").change(function ()
  2. {
  3. var selectName = $(this).attr("name");
  4.  
  5. if(selectName == 'klient')
  6. {
  7. val = $('option:selected', $("#klient")).text()
  8.  
  9. $.getJSON('php_js.php?action=klient&id='+val, function(json)
  10. {
  11. var select = $('#produkt_id');
  12.  
  13. $.each(json, function(k, v)
  14. {
  15. alert(k);
  16. var option = $('<option />');
  17.  
  18. option.attr('value', v)
  19. .html(v)
  20. .appendTo(select);
  21.  
  22. alert();
  23. });
  24. });
  25. }
  26. });


mam tylko jedną małą zagwozdkę, mianowicie tablica wpadająca w json_encode wygląda:
  1. $array = array(
  2. 0 => array(
  3. "a" => "test",
  4. "b" => "test",
  5. "c" => "test",
  6. "d" => "test"
  7. ),
  8. 1 => array(
  9. "e" => "test",
  10. "f" => "test",
  11. "g" => "test",
  12. "h" => "test"
  13. )
  14. );

i nie umiem sobie poradzić z wygrzebaniem wszystkich rekordów np. "a" bądź "b".. Przy bardziej płaskiej strukturze:
  1. $array = array(
  2. "a" => "test",
  3. "b" => "test",
  4. "c" => "test",
  5. "d" => "test"
  6. )

nie stanowi to problemu.. jakaś wskazówka?

--- EDIT:
Poradziłem sobie sprawa okazała się trywialna
nospor
Cytat
jakaś wskazówka?
Zainstaluj FireBUGa dla FF i sobie podejrzyj jak wygląda otrzymany obiekt JSON. Naprawdę, czasami najprostrze metody są najlepsze winksmiley.jpg
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.