Autor Zpráva
Vanama
Profil
Zdravím,
potřeboval bych z HTML vytáhnout JQuery selectorem data a poslat je dál PHP skriptu.
Konkrétně všechny a elementy, které obsahují v atributu rel string "pinTmpImageGraph". Ideálně to poslat jako json. Zatím mi to posílá samé undefined.

  var items = [];
  
  $.each($('a[rel*="pinTmpImageGraph"]'), function(val) {
    items.push(val);
  });
  
    $.ajax({
      url: "/xmlhttp/ajaxCharts.php",
      dataType: 'json',
      data: items,
      success: alert('ok')
    });

Díky za rady
Kcko
Profil
Vanama:
Převedeš si to na objekt

 var items = [];
  
  $.each($('a[rel*="pinTmpImageGraph"]'), function(val) {
    items.push(val);
  });
  
  
  items = $.extend({}, items);


    $.ajax({
      url: "/xmlhttp/ajaxCharts.php",
      dataType: 'json',
      data: items,
      success: alert('ok')
    });



ale bude Ti to posílat obráceně ve smyslu ?0=prvniHodnota&1=druhaHodnota&3=tretiHodnota ale to bys už měl zvládnout v PHP zpracovat.



Nebo vlastní fcí, kdybys nepoužíval jQuery (což používáš tak je to fuk, ale i tak to sem hodím)

function arr2Obj(arr) {
  var obj = {};
  
  for (var i = 0; i < arr.length; ++i)
  {
    obj [i] = arr[i];
  }
  
  return obj ;
}
Vanama
Profil
Nějak mi to nefunguje. Nyní místo undefined, mám čísla - 0=0&1=1....

Teď koukám, že jsem se ne[pln2 vyjádřil. Potřebuju jen hodnoty attributu rel kde rel obshauje text viz. výše a je v elementu a.

Každopádně díky za odpověď
Kcko
Profil
Vanama:
Hm, používáš špatně each ...

řádek 4 si vyměn za

items.push($(this).text());


Edit: ted mě ještě napadlo, že tady zbytečně šamaníme s objektem. Pole jako takové nepošleš, jedině objekt, ale Toby by stačil i čistý string

tj

items= items.join(",");

na straně serveru jednodušše explodneš a uložíš nebo co já vím.
Vanama
Profil
Děkuji, teď už mi to vrací to co potřebuju.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: