Pereiti prie turinio

Reikia patarimo dėl FOREACH ir ir atvaizdavimo po nuorodos paspaudimo


Rekomenduojami pranešimai

Nežinojau kaip pavadinti temą, tad pavadinimas gali neatitikti turinio, problema tokia šiek tiek specifinė.

 

Žodžiu yra taip:

 

turiu foreach ciklą, atvaizduoju elementus tam tikrus ir jei tas elementas turi tam tikra lauką su 1 šalia jo pridedu pliusuką pvz.:

 

+ Preke 1 10 Lt

Preke 2 15 Lt (eilute neturi tam tikro flago todėl pliusuko nėra)

+ Preke 3 9 Lt

 

Nuoroda paspaudus pliusiuką pridės prie URL tos prekės ID ir sąlyga išves dar vieną SQL užklausą kuri atvaizduos elementus su tuo ID. Tie elementai pagal idėja turi būti atvaizduojami po apačia, susikuria naujas DIV ar TR nesvarbu.

 

Problema ta kad pagal mano parašytą programą atvaizduojama po kiekvienu lauku, gaunasi kad dubliuojasi. Kaip padaryti kad echo'jintu tik po tam tikru elementu? Reikia kažkokių įdėju nes suprantu jog čia atsakymo neduos niekas konkretaus.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nelabai supratau ko tu nori.

Reikėjo pilną ciklą įdėt ir output'ą parodyt pakomentavęs.

 

Echoin'ti nerekomenduojama.

 

Prieš ciklą susikuri bufferį:

$output = '';

foreach() {
  $output .= 'a';
}

echo $output;

 

O toliau kad nedubliuotų darai sąlygą cikle if(kazkas).

 

Be normalaus kodo pavyzdžio nieko daugiau nebus.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

nieko nesupratau... Bet pabandome...

 

Tikriname pliusa ir statome flaga tame paciame masyve

foreach($items as &$item)
$item->plus = is_numeric($item->something) && $item->something === 1 ? TRUE : FALSE;

Nors jeigu tas vienetas jau yra masyve, tai ji tesiog isvedimo metu reikia tikrinti... Toliau jeigu true pridedi 'class="my-customs-plus"' ar ka nors tokio, o tada

 

jQuery('a.my-customs-plus').click(function(event){
event.preventDefault();
//cia varai ajax ir jQuery(this) tavo geriausias draugas
});

 

Ir jo, nepamirsk issaugoti this pries ajax uzklausa, nes JS grieztas scoupams.

Redagavo apieviska
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gerai pateiksiu pvz.:

 

$traukiam_prekes = ...;

foreach ($traukiam_prekes as $rowtraukiam_prekes) {

 

if ($rowtraukiam_prekes['FLAG']==1) {

$minuplius = '<a href="PREKES ID">+</a>';

} else {

$minuplius '-';

}

 

echo '<div>'.$minuplius.':'.$rowtraukiam_prekes['PREKE'].'</div>';

 

if (ta preke turi pliusuka vykdoma dar viena uzklausa) {

foreach ($traukiam_dar as $rowtraukiam_dar){

 

echo 'sitas tekstas turi rodyti tik po tuo elementu kuri paspaudziau, o rodo aisku po visais kur yra pliusiukai';

 

}

}

 

}

 

Kad butu dar aiskiau screenai:

 

post-5735-0-46190000-1366706912_thumb.jpg

post-5735-0-73241900-1366706948_thumb.jpg

 

Aš galvoju kad čia dėl to foreach loopo kad visai ne taip reikia daryti bet nesumastau kaip...

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gerai pateiksiu pvz.:

 

$traukiam_prekes = ...;

foreach ($traukiam_prekes as $rowtraukiam_prekes) {

 

if ($rowtraukiam_prekes['FLAG']==1) {

$minuplius = '<a href="PREKES ID">+</a>';

} else {

$minuplius '-';

}

 

echo '<div>'.$minuplius.':'.$rowtraukiam_prekes['PREKE'].'</div>';

 

if (ta preke turi pliusuka vykdoma dar viena uzklausa) {

foreach ($traukiam_dar as $rowtraukiam_dar){

 

echo 'sitas tekstas turi rodyti tik po tuo elementu kuri paspaudziau, o rodo aisku po visais kur yra pliusiukai';

 

}

}

 

}

 

Kad butu dar aiskiau screenai:

 

post-5735-0-46190000-1366706912_thumb.jpg

post-5735-0-73241900-1366706948_thumb.jpg

 

Aš galvoju kad čia dėl to foreach loopo kad visai ne taip reikia daryti bet nesumastau kaip...

 

tu echink viska paciame gale. Paskaitik cia http://pixel.lt/mvc-i-architektura.html

 

Ir aplamai, kam tau du ciklai? Viename ifa aprasai ir viskas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Antras ciklas jau kreipiasi į kitą procedūra, bet kreiptis reikia tik tada kai yra paspaustas pliusiukas šalia prekės. Tai viena procedūra išveda visas prekės, šalia tų prekių kur reikia pridedu + čia reiškiasi jei paspausiu ant to plius jis kreipsisi į dar vieną procedūrą su parametru ID (ID bus tos prekės kurios pliusiuka aš spaudžiu) ir gražins resultatą, bet geriausiu atveju galiu gražinti kur nors apačioje po kad nesidubliuotu, o man reikia kad būtent po ta prekė po kuria paspaudžiau +...painus reikalas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Antras ciklas jau kreipiasi į kitą procedūra, bet kreiptis reikia tik tada kai yra paspaustas pliusiukas šalia prekės. Tai viena procedūra išveda visas prekės, šalia tų prekių kur reikia pridedu + čia reiškiasi jei paspausiu ant to plius jis kreipsisi į dar vieną procedūrą su parametru ID (ID bus tos prekės kurios pliusiuka aš spaudžiu) ir gražins resultatą, bet geriausiu atveju galiu gražinti kur nors apačioje po kad nesidubliuotu, o man reikia kad būtent po ta prekė po kuria paspaudžiau +...painus reikalas.

Ne reikalas painus, o logika... As dariciaut taip:

  1. Printinu visa sarasa su kazkokia zymele, jei yra 1
  2. Paspaudzius nuoroda tikrinu, ar yra ta zymele, jei yra darau ajax uzklausa su sio id
  3. Padarius uzklausa pasileidzia funkcija su to id ir grazina rezultata apie ta id
  4. Generuoju nauja DOM elementa su gautu rezultatu

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kažką pietaudamas ir galvojau kad reikia tame DIV'e sukurti dar dieną su elemento ID kuris bus užpildomas priklausomai nuo to kuris bus paspaustas, javasript arti nulio supratimas tai reikės ieškoti.

 

Gerai tada užveskit dar ant kelio:

 

foreach ($analogai as $rowanalogai) {
                   echo '<div>';
                   echo $rowanalogai['PRTIPAS_PAV'];
                   echo '</div>';
               }

 

Šita visą noriu kad išvestu tam tikrame unikaliame DIV'e, kaip tą galima būtu padaryti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kažką pietaudamas ir galvojau kad reikia tame DIV'e sukurti dar dieną su elemento ID kuris bus užpildomas priklausomai nuo to kuris bus paspaustas, javasript arti nulio supratimas tai reikės ieškoti.

 

Gerai tada užveskit dar ant kelio:

 

foreach ($analogai as $rowanalogai) {
                   echo '<div>';
                   echo $rowanalogai['PRTIPAS_PAV'];
                   echo '</div>';
               }

 

Šita visą noriu kad išvestu tam tikrame unikaliame DIV'e, kaip tą galima būtu padaryti?

 

http://php.net/manual/en/book.dom.php

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...