AJAX předání hodnot do input elementů z PHP assoc array

ZAJDAN

  • *****
  • 2 110
PHP mi vrací hodnoty pomocí associativního pole:
[{"Letter":"S","Commission":"123456","Status":"SKLADEM","DeliveryDate":"4.3.","Path_to_Order":"server","Path_to_Data":"server"}]

Ajaxem bych chtěl jednotlivé hodnoty předat do existujících inputů type="text"
...
...něco jako
success: function(data) {
                                        $("[name=Letter]").val(data);
                                        }


nasměroval by mne někdo na správnou cestu?
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


3ugeene

Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #1 kdy: 13. 03. 2019, 16:50:35 »


success: function(data) {
   $.each(data, function (k, v) {
   const $el = $("[name=" + k +  "]")
   
   if ($el.length) {   //esi jako existuje
     $el.val(v)
   }

}


ZAJDAN

  • *****
  • 2 110
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #2 kdy: 14. 03. 2019, 10:45:27 »
Citace od: robin martinez kdy 13. 03. 2019, 16:50:35


success: function(data) {
   $.each(data, function (k, v) {
   const $el = $("[name=" + k +  "]")
   
   if ($el.length) {   //esi jako existuje
     $el.val(v)
   }

}


díky za nasměrování, podělím se o funkční řešení:


success: function(json) {
$.each(json, function() {
    $.each(this, function(k, v) {
const $el = $("[name=" + k +  "]")
if ($el.length) {
$el.val(v)
      }
});
});
}
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Kit

  • *****
  • 1 140
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #3 kdy: 14. 03. 2019, 13:22:20 »
Nevrací to jako asociativní pole, ale jako JSON. Zpracovává se to metodou JSON.parse().

ZAJDAN

  • *****
  • 2 110
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #4 kdy: 14. 03. 2019, 13:51:12 »
Citace od: Kit kdy 14. 03. 2019, 13:22:20
Nevrací to jako asociativní pole, ale jako JSON. Zpracovává se to metodou JSON.parse().
díky za info..

Já to ještě na úrovni PHP encoduju do jsonu a ten pak echuju ven a Ajaxem zpracovávám.
Každopádně i bez 'parse' to rozklíčuje a hodnoty vsadí přesně jak potřebuju.
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


Kit

  • *****
  • 1 140
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #5 kdy: 14. 03. 2019, 15:18:36 »
Citace od: ZAJDAN kdy 14. 03. 2019, 13:51:12
Citace od: Kit kdy 14. 03. 2019, 13:22:20
Nevrací to jako asociativní pole, ale jako JSON. Zpracovává se to metodou JSON.parse().
díky za info..

Já to ještě na úrovni PHP encoduju do jsonu a ten pak echuju ven a Ajaxem zpracovávám.
Každopádně i bez 'parse' to rozklíčuje a hodnoty vsadí přesně jak potřebuju.

To je právě špatně, takový skript je zranitelný. Proto parse().

gill

  • ****
  • 270
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #6 kdy: 14. 03. 2019, 15:56:35 »
Citace od: Kit kdy 14. 03. 2019, 15:18:36
Citace od: ZAJDAN kdy 14. 03. 2019, 13:51:12
Citace od: Kit kdy 14. 03. 2019, 13:22:20
Nevrací to jako asociativní pole, ale jako JSON. Zpracovává se to metodou JSON.parse().
díky za info..

Já to ještě na úrovni PHP encoduju do jsonu a ten pak echuju ven a Ajaxem zpracovávám.
Každopádně i bez 'parse' to rozklíčuje a hodnoty vsadí přesně jak potřebuju.

To je právě špatně, takový skript je zranitelný. Proto parse().

podle ceho soudis, ze nepouziva parse?

ByCzech

  • *****
  • 1 879
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #7 kdy: 14. 03. 2019, 16:16:26 »
Citace od: gill kdy 14. 03. 2019, 15:56:35
podle ceho soudis, ze nepouziva parse?

Citace od: ZAJDAN kdy 14. 03. 2019, 13:51:12
Každopádně i bez 'parse' to rozklíčuje a hodnoty vsadí přesně jak potřebuju.

ZAJDAN

  • *****
  • 2 110
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #8 kdy: 14. 03. 2019, 16:36:36 »
ještě bych poprosil o radu jak řešit v Ajax success podmínky

v php mam:
       
....
$result = $prepared->fetchAll(PDO::FETCH_OBJ);

if (!$result) {
echo "neexistuje";
}

else {
        $json = json_encode($result);
        echo $json;
}


AJAX:

success: function(json) {
if (json.indexOf("neexistuje") ) { alert ("neexistuje") }
    else{
$.each(json, function() {
    $.each(this, function(k, v) {
const $el = $("[name=" + k +  "]")
if ($el.length) {
$el.val(v)
      }
});
});
}
}


problém je, že pokud PHP vrátí neexistuje, tak v ten moment to není json a Ajax ten json očekává.
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

ZAJDAN

  • *****
  • 2 110
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #9 kdy: 14. 03. 2019, 17:00:04 »
Zatím jsem to vyřešil, že v Ajaxu tu podmínku nemám  a v php jsem si udělal návratové pole.
Pokud není záznam nalezen, tak to tohdle návratové pole vrátí:

if (!$result) {
$json_array[] = array("Letter"=>"Non", "Commission"=>"neexistuje", "Status"=>"NoN", "DeliveryDate"=>"NoN");
$json = json_encode($json_array);
echo $json;
}

dělá to to co potřebuji
ale verze s ajax podmínkou volající Alert by se také hodila
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

gill

  • ****
  • 270
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #10 kdy: 14. 03. 2019, 17:16:06 »
Citace od: ByCzech kdy 14. 03. 2019, 16:16:26
Citace od: gill kdy 14. 03. 2019, 15:56:35
podle ceho soudis, ze nepouziva parse?

Citace od: ZAJDAN kdy 14. 03. 2019, 13:51:12
Každopádně i bez 'parse' to rozklíčuje a hodnoty vsadí přesně jak potřebuju.

ten callback success to dostane rozparsovane. Nekde se to parsovat musi.

ByCzech

  • *****
  • 1 879
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #11 kdy: 15. 03. 2019, 09:08:14 »
Citace od: gill kdy 14. 03. 2019, 17:16:06
Citace od: ByCzech kdy 14. 03. 2019, 16:16:26
Citace od: gill kdy 14. 03. 2019, 15:56:35
podle ceho soudis, ze nepouziva parse?

Citace od: ZAJDAN kdy 14. 03. 2019, 13:51:12
Každopádně i bez 'parse' to rozklíčuje a hodnoty vsadí přesně jak potřebuju.

ten callback success to dostane rozparsovane. Nekde se to parsovat musi.

Já reagoval na to, podle čeho soudí Kit, že nepoužívá parse. Což neimplikuje, že to vidím stejně.

gill

  • ****
  • 270
Re:AJAX předání hodnot do input elementů z PHP assoc array
« Odpověď #12 kdy: 15. 03. 2019, 10:25:06 »
Citace od: ByCzech kdy 15. 03. 2019, 09:08:14
Já reagoval na to, podle čeho soudí Kit, že nepoužívá parse. Což neimplikuje, že to vidím stejně.

ja reagoval na jeho prvni prispevek

Citace od: Kit kdy 14. 03. 2019, 13:22:20
Nevrací to jako asociativní pole, ale jako JSON. Zpracovává se to metodou JSON.parse().