[ Príspevkov: 8 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Filtrovanie $_POST, viacrozmerne pole

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky

Do poli niesom moc macher a mam taky problem, ze pouzivam <select multiple>

maju nejaky nazov, napr "orderCISLO" a potrebujem zo vsetkych ostatnych POSTov odfiltrovat prave tieto, ktore maju v mene ORDER a ich hodnoty nejako fajne ulozit do pola, ktore bude mat napr tvar:
$pole[order25][0] = 12
$pole[order25][1] = 14
$pole[order26][0] = 3
$pole[order26][1] = 5

aby som ich vedel nasledne dat do tvaru:

order25=12;order25=14;order26=3;order26=5;

nejake moje trapne pokusy:
Kód:
<?php

 foreach($_POST as $key => $value) {     
      if(strPos($key,"rder")==1) {
        $poleOrder[$key][] = $value;
      }
  }
  foreach($poleOrder as $hodnota => $k) {
    echo $hodnota.'<br>';
    foreach($k as $cislo => $c) {
      print_r($cislo);
    }
    echo '<br><br>';
   
  }

?>
<br><br>
<form method="post">

<select multiple name="order25[]" size="5" class="blede">
<option value="116" selected>Hard Drives</option>
<option value="117" >USB Flash Drives</option>

</select>
</td></tr><tr><td>Size&nbsp;&nbsp;</td><td>
<select multiple name="order28[]" size="5" class="blede">
<option value="142" >2.5&quot;(Pocket)</option>
<option value="143" selected>3.5&quot;3(Desktop)</option>
</select>
</td></tr><tr><td>Interface&nbsp;&nbsp;</td><td>
<select multiple name="order26[]" size="5" class="blede">
<option value="119" >FireWire</option>
<option value="120" >eSATA</option>

<option value="118" selected>USB</option>
</select>
</td></tr><tr><td>Capacity&nbsp;&nbsp;</td><td>
<select multiple name="order27[]" size="5" class="blede">
<option value="195" >Volaco</option>
<option value="194" >2TB</option>
<option value="149" >160GB</option>
<option value="139" >4GB</option>
<option value="138" >8GB</option>
<option value="137" >16GB</option>

<option value="141" >32GB</option>
<option value="133" >64GB</option>
<option value="135" >80GB</option>
<option value="131" >120GB</option>
<option value="130" >250GB</option>
<option value="129" >320GB</option>
<option value="128" >400GB</option>
<option value="127" selected>500GB</option>
<option value="126" >750GB</option>

<option value="125" >1TB</option>
<option value="124" >1.5TB</option>
<option value="123" >2GB</option>
</select>


<br>
<input type="submit" value="ok">
</form>



//zmeneny nazov temy (stenley)


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Správca fóra
Správca fóra
Filtrovanie $_POST, viacrozmerne pole

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 23.11.2008 12:10 | Filtrovanie $_POST, viacrozmerne pole

Na co to davat znova do pola, ked v takom istom poli to uz mas? :) tento kod by mal fungovat, pripadne si ho uprav podla potreby:
Kód:
<?php
$ret = "";
if(!empty($_POST)) {
   foreach($_POST as $key => $value) {
      if(ereg("^order[0-9]{1,2}$",$key)) {
         if(is_array($value)) {
            foreach($value as $val) {
               $ret .= $key."=".$val.";";
            }
         }
      }
   }
   
   echo $ret;
}
?>


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Filtrovanie $_POST, viacrozmerne pole

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 23.11.2008 14:35 | Filtrovanie $_POST, viacrozmerne pole

joooooooooooooooo.. lubim taaaaaaa :D


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Skúsený užívateľ
Skúsený užívateľ
Filtrovanie $_POST, viacrozmerne pole

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1586
Témy: 96 | 96

array_walk si pozri http://sk.php.net/array_walk


_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Filtrovanie $_POST, viacrozmerne pole

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 23.11.2008 15:18 | Filtrovanie $_POST, viacrozmerne pole

no, na tomto priklade co som sem, mi stenleyho priklad isiel, ale ked som to dal na stranku, kde mam okrem tychto orderov aj kopec inych post premennych, tak to tam nejde...

ked si dam print_r($_POST) tak mi to vypise:
Kód:
Array ( [order34] => Array + ostatne veci

a potom mi ten stenleyho priklad neprejde tu:
Kód:
if(is_array($value)) {

on si mysli, ze to neni array...

ked to zakomentujem ale, cize cele to vyzera takto:
Kód:
if(!empty($_POST)) {
     foreach($_POST as $key => $value) {
     
          if(ereg("^order[0-9]{1,2}$",$key)) {
              print_r($value); echo '<br>';   
               //if(is_array($value)) {
                 //   foreach($value as $val) {
                     
                         $ret .= $key."=".$value.";";
                    //}
               //}
          }
     }
     
     echo $ret;
}

tak to hodi:
Kód:
Array
order34=Array;

ako to?? skusim este array_walk..


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96

Ahoj,
no ja poprosim všetky tie hlúposti teda celý výsledok var_dump a potom script ktorým to vyhodnocuješ. Diki


Offline

Užívateľ
Užívateľ
Filtrovanie $_POST, viacrozmerne pole

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 23.11.2008 15:48 | Filtrovanie $_POST, viacrozmerne pole

ach, uz viem kde je problem....

pouzivam stenleyho funkciu (safety) trochu mnou upravenu na osetrenie post premennych:
Kód:
function safety($value)
{
   if(is_array($value)) {
      return array_map("safetyValue",$value);
   } else {
      return safetyValue($value);
   }
}

function safetyValue($value)
{
   if(get_magic_quotes_gpc()) {
      $value = stripslashes($value);
   }
   
    $value = addslashes($value);
   $value = htmlspecialchars($value);
   $value = str_replace("%","%",$value);
   $value = str_replace("'","'",$value);
   $value = str_replace("\"","&quot;",$value);
   
   return $value;
}


a ta asi nezobere viac rozmerne pole. takze treba ju prerobit, ze ?? ako ?

EDIT:
takze, som si to spravil na kolene:
Kód:
function safetyValue($value)
{
  if(is_array($value)) {
      return array_map("safetyValue",$value);
   } else {
   if(get_magic_quotes_gpc()) {
      $value = stripslashes($value);
   }
   
    $value = addslashes($value);
   $value = htmlspecialchars($value);
   $value = str_replace("%","%",$value);
   $value = str_replace("'","'",$value);
   $value = str_replace("\"","&quot;",$value);
   
   return $value;
    }
}


moze to takto byt?


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Správca fóra
Správca fóra
Filtrovanie $_POST, viacrozmerne pole

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

ako vidim, v povodnej verzii funkcie safety som nieco nedomyslel :), takze tu je jej univerzalna podoba:
Kód:
function safety(&$value)
{
   if(is_array($value)) {
      array_walk_recursive($value,"safetyValue");
   } else {
      safetyValue($value);
   }
}

function safetyValue(&$value)
{
   if(get_magic_quotes_gpc()) {
      $value = stripslashes($value);
   }

   $value = htmlspecialchars($value);
}


Dalsie podrobnosti na http://www.pcforum.sk/uzitocne-a-casto- ... tml#421499


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
 [ Príspevkov: 8 ] 


Filtrovanie $_POST, viacrozmerne pole



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Viacrozmerne pole

v PHP, ASP

3

374

07.12.2010 16:41

venom2

V tomto fóre nie sú ďalšie neprečítané témy.

viacrozmerne pole - zistenie najväčšieho indexu

v PHP, ASP

3

282

22.10.2008 7:53

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

$_POST['pole']['item'] kombinácia viacerých typov inputov

v PHP, ASP

20

614

30.08.2011 19:46

camo

V tomto fóre nie sú ďalšie neprečítané témy.

viacrozmerne polia

v PHP, ASP

4

551

04.08.2009 18:39

pilná lama glama

V tomto fóre nie sú ďalšie neprečítané témy.

$_POST

v PHP, ASP

11

838

13.02.2008 12:57

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

Bezpecnost $_POST

v PHP, ASP

26

666

15.01.2015 23:57

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

ochrana $_POST

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

42

1672

07.01.2010 18:50

mylan

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc s $_POST

v PHP, ASP

17

619

10.03.2008 11:16

mondzo

V tomto fóre nie sú ďalšie neprečítané témy.

filtrovanie

v PHP, ASP

26

845

30.07.2009 12:55

php30

V tomto fóre nie sú ďalšie neprečítané témy.

guestbook - vyprazdnenie $_POST a ...

v PHP, ASP

2

688

19.01.2009 20:58

Ded'leg

V tomto fóre nie sú ďalšie neprečítané témy.

filtrovanie internetu

v Sieťové a internetové programy

3

308

21.09.2008 16:42

edulinko

V tomto fóre nie sú ďalšie neprečítané témy.

filtrovanie dat

v PHP, ASP

5

387

12.12.2011 23:32

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Filtrovanie WWW

v Bezpečnosť a firewally

4

830

12.01.2007 10:22

t0ki

V tomto fóre nie sú ďalšie neprečítané témy.

filtrovanie selectov

v JavaScript, VBScript, Ajax

8

385

17.09.2008 14:55

Broko71

V tomto fóre nie sú ďalšie neprečítané témy.

filtrovanie noviniek

v PHP, ASP

14

459

01.05.2008 16:13

emer

V tomto fóre nie sú ďalšie neprečítané témy.

filtrovanie vo worde

v Ostatné programy

5

240

06.09.2012 21:05

tairikuokami



© 2005 - 2017 PCforum, edited by JanoF