Jump to content
php.lv forumi

Laravel programmētāji


ViktorsN

Recommended Posts

  • Replies 300
  • Created
  • Last Reply

Top Posters In This Topic

Tagad tev ir jāciklē cauri visiem GET/POST parametriem un jāmeklē tas | simbols, pēc kura jāgrupē subitems. Tā ir tā liekā parsēšana.

 

Par lieko parsēšanu (URL filtra gadījumā, kur selectā izvēlas vienību un multiselektā - 0, 1, ... N apakšvienības, un šo pāru skaits ir 0, 1, ... N atkarībā no lietotāja):

$data = [];
$i = 0;
$breaks = array_keys($_GET['subitems'], '|');
foreach ($_GET['item'] as $item) {
    $data[] = [
        'item' => $item, 
        'subitems' => array_slice($_GET['subitems'], $i > 0 ? $breaks[$i - 1] : 0, $breaks[$i])
    ];
    $i++;
}

Labprāt redzēto to JS kodu, kas izseko līdzi un menedžē to i. Vai jebkādā citādā variantā.

Edited by Mr.Key
Link to comment
Share on other sites

Par lieko parsēšanu (URL filtra gadījumā, kur selectā izvēlas vienību un multiselektā - 0, 1, ... N apakšvienības, un šo pāru skaits ir 0, 1, ... N atkarībā no lietotāja):

$data = [];
$i = 0;
$breaks = array_keys($_GET['subitems'], '|');
foreach ($_GET['item'] as $item) {
    $data[] = [
        'item' => $item, 
        'subitems' => array_slice($_GET['subitems'], $i > 0 ? $breaks[$i - 1] : 0, $breaks[$i])
    ];
    $i++;
}

Labprāt redzēto to JS kodu, kas izseko līdzi un menedžē to i. Vai jebkādā citādā variantā.

Nu, ja visa tava templeity sistēma frontendā sastāv no .clone() tad būs pagrūti jā... :P

Link to comment
Share on other sites

>Labprāt redzēto to JS kodu, kas izseko līdzi un menedžē to i. Vai jebkādā citādā variantā.

 

var i = $existingRows.count();

 

var newRow = $existingRows.last().clone().html()

    .replace(

        'name="subtypes[' + (i - 1) + '][]"',

        'name="subtypes[' + i + '][]"'

    );

 

Tas būtu visprimitīvākais variants, bet arī viens no, ja ne pats efektīvākais. Vēl var tabulā norādīt atribūtus 'data-row-count="{$lastIterVal}"' un "data-col-count", ko jQuery viegli nolasīt ar jQuery('table-selector').data('row-count'), un pie jauna row/col pievienošanas uzsetot jaunu vērtību. Attiecīgi JS nolasa šos 2 atribūtus un ģenerējot jaunu row/col, nekas netiek klonēts, bet gan ģenerēts vai nu HTML string, vai DOM tree jaunajam row.

Edited by jurchiks
Link to comment
Share on other sites

Jurchiks, tehniski tas man ir skaidrs un saprotams, taču es neredzu, kāpēc struktūra, kurā elementi tiek organizēti secībā un katra elementa kārtas numurs skaitot atbilst, khmm, viņa kārtas numuram, ir jāpapildina ar kārtas numuru. Turklāt, ņem vērā, ka tos datus var bīdīt visādi un pirms datu nosūtīšanas secība var neatbilst tam i, kas tapa klonēšanas brīdī.

 

F3llony, man patīk un sanāk strādāt tā, ka ir klients, ar kuru strādāju pa tiešo bez tīmlīdiem, produkta owneriem un citiem kukaiņiem, un kuram vajag palīdzēt atrisināt viņa biznesa vajadzības. Tas nozīmē izveidot IT risinājumu no 0, tas IT risinājums kļūst par viņa ikdienas darba sastāvdaļu. Risinājumu izstrādāju vadoties pēc tā, lai tas strādā, strādā korekti, reizēm pat strādā 10+ gadus. Darba rezultāts ir nevis tas, cik es sarežģīti izveidoju un cik daudz salieku visu ko lieku, kas citur pēc tam izpaužas kā double qoutes, unescape_escaped_string, vai lietām, kuras vienkārši nestrādā, bet tas, cik racionāli un sabalansēti es māku salikt kopā vajadzīgās tehnoloģijas. Parasti mazāk ir labāk. Es nestrādāju lielā uzņēmumā un nevaru atļauties filozofēt par to, kā būtu pareizi - vajag, daru, risinu. Bet ja ir padoms par templeitu sistēmu web appam, kas darbojas browserī uz planšetēm un kur jau pamatā doma ir datu apmaiņu laist caur AJAX/JSON, tiešām interesētu, kurš būtu labāks (angular, ember, react? skatos uz ember. gribu webisku appu, kas sesijas sākumā saņem datus, sesijas beigās nosūta gatavus pasūtījumus, pa vidu formās notiek pasūtījumu veidošana).

Link to comment
Share on other sites

>Turklāt, ņem vērā, ka tos datus var bīdīt visādi un pirms datu nosūtīšanas secība var neatbilst tam i, kas tapa klonēšanas brīdī.

Loģiski, ka tas ir jāparedz tajā bīdīšanas Javaskriptā.

 

>Es nestrādāju lielā uzņēmumā un nevaru atļauties filozofēt par to, kā būtu pareizi

Lielā uzņēmumā kā reiz par to nemaz neļauj filozofēt, jo ir "standarti".

Link to comment
Share on other sites

Nu cik reizes var skaidrot - nav nekas nepieciešams. Elementu kārtas numurs to organizētajā secībā ir pilnīgi pietiekami. Izmainot elementu kārtību visos iespējamos veidos, to kārtas numurs jaunajā secībā vienmēr būs kārtas numurs jaunajā secībā. Piemēram, rindā piektais cilvēks vienmēr būs piektais un pie kases produktus pircēji atdala kociņu pa vidu tiem, nevis numurē katru savu produktu.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

Loading...

×
×
  • Create New...