Autor Zpráva
tomas2245
Profil
Zdravím, je možné dostať obsah z jedného foreach do druhého, bez toho aby sa ten obsah zduplikoval?

Kód:

    $cislo_objednavky = array();
    $klucik = "";

    foreach($_POST as $kluc => $obsah) {
        if (strpos($kluc, 'cislo') === 0) {
        if(!empty($_POST[$kluc])){
            $klucik = substr($kluc, 5);
            $klucik = mysqli_real_escape_string($pripoj,$klucik);

            $cislo_objednavky[$klucik] = $obsah;

        }
        }
    }

    $cena_objednavky = array();
    $klucik = "";

    foreach($_POST as $kluc => $obsah) {
        if (strpos($kluc, 'cena') === 0) {
        if(!empty($_POST[$kluc])){
            $klucik = substr($kluc, 4);
            $klucik = mysqli_real_escape_string($pripoj,$klucik);

            $cena_objednavky[$klucik] = $obsah;
            
        }
        }
    }
        
foreach($cislo_objednavky as $kluc_objednavka => $obsah_objednavka){

//tu by som chcel mať aj obsah z foreach($cena_objednavky)

}
Tomášeek
Profil
tomas2245:
Proč tak složitě?

Nech jeden foreach, radek 16 dej na radek 2, radek 25 dej pod radek 11 a mas hotovo.

Radek 2 je zbytečný, na řádku 6 pracuj s proměnnou obsah. Radek 8 zahod, ten použij až někdy někde budeš sestavovat dotaz.
tomas2245
Profil
Ďakujem krásne, funguje to super, ale ešte jedna otázočka keď je použitý jeden foreach dá sa ošetriť aj to aby výsledok $vratobjednavky nebol príklad:

cislo1cislo2 : cena1cena2

ale rozdelené na cislo1 : cena1
cislo2 : cena2

    $cislo_objednavky = array();
    $cena_objednavky = array();

    foreach($_POST as $kluc => $obsah) {
        if (strpos($kluc, 'cislo') === 0) {
        if(!empty($_POST[$kluc])){
            $klucik = substr($kluc, 5);

            $cislo_objednavky[$klucik] = $obsah;

$test1 .= $kluc;

        }
        }


        if (strpos($kluc, 'cena') === 0) {
        if(!empty($_POST[$kluc])){
            $klucik = substr($kluc, 4);

            $cena_objednavky[$klucik] = $obsah;

$test2 .= $kluc;

        }
        }


    }

$vratobjednavky = ''.$test1.' : '.$test2.'<br>';
Tomášeek
Profil
tomas2245:
Řiď se tím, co jsem psal. Stačí ti jeden strpos, jeden empty a dohromady asi 10 řádku kódu. O žádném spojováni stringu řec nebyla, nevím, kdes na ni přišel.
tomas2245
Profil
Nemôžem pracovať s $obsahom pretože $obsah je value inputov ktoré majú podobu:

Input 1: 140
Input 2: 114

preto tam mám dva strpos aby som potom vedel priradiť k danému $test svoju value z inputu
Tomášeek
Profil
tomas2245:
Jo, to jsem přehlédl. Sorry jsem na tel. Je to easy, zkus se nad tím zamyslet. Možná i pojmenováním poli ve formu.
tomas2245
Profil
nič mi nenapadá, vedel by niekto nejaké riešenie?
tomas2245
Profil
ono tie inputy vyzerajú takto:

<input type="text" name="cislo1" value="1">
<input type="text" name="cena1" value="14.00">

od 1 po 100 majú name..cislo2, cena2, cislo3, cena3

a by ma zajímalo či je možné nejak tie array potom priradiť k sebe aby neboli všetky spojené na jednej hromade ale patrilo cislo2 k cene2, cislo3 k cene3 a tak ďalej
Radek9
Profil
tomas2245:
PHP podporuje tohle:
<input type="text" name="cislo[1]" value="1"> 
<input type="text" name="cena[1]" value="14.00">
<input type="text" name="cislo[2]" value="123"> 
<input type="text" name="cena[2]" value="123456.00">
...

if (isset($_POST['cislo'])) {
  $objednavky = array();
  
  foreach ($_POST['cislo'] as $kluc => $cislo) {
    $cena = $_POST['cena'][$kluc];
    $objednavky[$cislo] = $cena;
  }
  
  var_dump($objednavky);
}
tomas2245
Profil
Radek9:
Najs, toto som potreboval, Ďakujeeem

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:

0