Autor Zpráva
Kaderas
Profil
Ahoj,

chtěl bych Vás programátory poprosit o pomoc. Potřebuji upravit kód tak, aby mi vypisoval id produků v košíku. On to v tuto chvíli dělá tak, že mi to vypíše id všech produktů v košíku, ale nakonec vždy nechá prázdnou hodnotu v uvozovkách viz. výsledek.

Kód: prodid: ['<?php $i=0; foreach( $product_rows as $product ) {echo $cart[$i]["product_id"];?>', '<?php $i++;} ?>']
Výsledek: prodid: ['244', '247', '']

Je možné nějakou úpravou kódu poslední uvozovky nevypisovat? Rád se za pomoc budu revanžovat, navrhněte odměnu ;)

Děkuji!
Jakub J.
Profil
Reaguji na Kaderase:
prodid: [<?php $i=0; foreach( $product_rows as $product ) { if($i > 0) { echo ", "; } echo "'".$cart[$i]["product_id"]."'"; $i++;} ?>] 
(Netestováno.)
nightfish
Profil
<?php
$cart = [
  ['product_id' => 123],
  ['product_id' => 400],
];
echo implode(', ', array_map(function($p) { return "'".$p['product_id']."'"; }, $cart));
(pokud jsem tedy správně pochopil, že chceš vypsat postupně všechny product_id z $cart)
Kaderas
Profil
Děkuji, řešení Jakuba funguje :-)
Davex
Profil
Kaderas:
Ono to ale může být principiálně špatně. Budu-li předpokládat, že je výstupem JavaScriptové pole, tak by se obecně hodnoty měly escapovat, aby nevznikla bezpečnostní díra.

S vypůjčením části nightfishova návrhu:

prodid: <?= json_encode(array_map(function($p) { return $p['product_id']; }, $cart)); ?>
Kaderas
Profil
Díky jste skvělí!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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