Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [jQuery] Dodawanie i usuwanie inputów
nospor
post 13.06.2018, 14:55:31
Post #21





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Cytat
czego nie doczytalem
A tego ci nie powiem bo znowu bym musial wskazac palcem co przegapiles wink.gif
Juz o tym ze sam blad powinienies zobaczyc nie wspomne.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
shpaque
post 13.06.2018, 15:17:37
Post #22





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


dobra przerobilem sobie html zeby jedna para buttonow byla w petli:

  1. <div id="<?php echo 'cat'.$i.'main'.$x; ?>">
  2. <?php for ($y = 0; $y < $countLinks; $y++): ?>
  3. <?php if ($y < 1): ?>
  4. <div class="row">
  5. <div class="col-sm-8">
  6. <input class="form-control text-center" type="text" name="linkTitle[]" value="<?php echo $c -> main[$x] -> link[$y] -> title; ?>" required />
  7. </div>
  8. <div class="col-sm-2">
  9. <input class="form-control text-center" type="text" name="linkPage[]" value="<?php echo $c -> main[$x] -> link[$y] -> page; ?>" required />
  10. </div>
  11. <div class="col-sm-1">
  12. <a href="#" class="btn btn-md text-center btn-delete" type="button" style="width: 100%; height: 100%;"><span class="fa fa-remove icon-md" title="Usuń ten link"></span></a>
  13. </div>
  14. <div class="col-sm-1">
  15. <button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat="<?php echo $i; ?>" data-row-main="<?php echo $x; ?>" data-row-link="<?php echo $y; ?>" onclick="return addRow(this);"><span class="fa fa-plus icon-md" title="Dodaj link"></span></button>
  16. </div>
  17. </div>
  18. <?php else: ?>
  19. <div class="row">
  20. <div class="col-sm-8">
  21. <input class="form-control text-center" type="text" name="linkTitle[]" value="<?php echo $c -> main[$x] -> link[$y] -> title; ?>" required />
  22. </div>
  23. <div class="col-sm-2">
  24. <input class="form-control text-center" type="text" name="linkPage[]" value="<?php echo $c -> main[$x] -> link[$y] -> page; ?>" required />
  25. </div>
  26. </div>
  27. <?php endif ?>
  28. <?php endfor ?>
  29. </div>


poprawilem bledy w skrypcie

  1. function addRow(row) {
  2. var catNumber = $(row).data('rowCat');
  3. var mainNumber = $(row).data('rowMain');
  4. var linkNumber = $(row).data('rowLink');
  5.  
  6. var i = linkNumber++;
  7. var newRow = $('#cat' + catNumber + 'main' + mainNumber);
  8.  
  9. $('<div class="row" style="margin-top: 2px;"><div class="col-sm-8"><input class="form-control text-center" type="text" name="linkTitle[]" required /></div><div class="col-sm-2"><input class="form-control text-center" type="text" name="linkPage[]" value="" required /></div><div class="col-sm-1"></div></div>').appendTo(newRow);
  10. i++;
  11. return false;
  12. }


niby jest ok teraz, teraz jak usunac rowy tak, zeby minimalnie zostal 1 w petli (mimo ze np z php petla robi 3 linie + mamy te wygenerowane przez js)
Go to the top of the page
+Quote Post
nospor
post 13.06.2018, 15:31:24
Post #23





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Juz ci chyba kiedys pisalem, ze rowy to mozesz kopac a nie usuwac wink.gif

Cytat
teraz jak usunac rowy tak, zeby minimalnie zostal 1 w petli (mimo ze np z php petla robi 3 linie + mamy te wygenerowane przez js)
No teraz to ja nie rozumiem.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
shpaque
post 13.06.2018, 21:14:23
Post #24





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


teraz musze dorobic opcje usuniecia analogicznie inputow, z tym ze z php robi petle z istniejacymi rowami, powiedzmy ze jest ich 3, dodaje za pomoca skryptu ktory tu robimy powiedzmy kolejne 3
- jak zrobic teraz skrypt zeby moc usunac np 5 rowow zostawiajac 1 w petli

cos na tej zasadzie, tylko

  1. function removeRow(row) {
  2. var catNumber = $(row).data('rowCat');
  3. var mainNumber = $(row).data('rowMain');
  4. var linkNumber = $(row).data('rowLink');
  5.  
  6. $('#cat' + catNumber + 'main' + mainNumber).remove();
  7. return false;
  8. }


1. nie moge skasowac wszystkich na raz (tylko pojedynczo) i musze zostawic zawsze 1.

czyli .remove() powinno byc przy child div tak? i w petli if linknumber > 0 ?
Go to the top of the page
+Quote Post
Pyton_000
post 13.06.2018, 21:20:22
Post #25





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


https://stackoverflow.com/questions/1887429...t-for-first-one
Go to the top of the page
+Quote Post
shpaque
post 14.06.2018, 10:09:02
Post #26





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


ok zadzialalo tak

  1. // Skrypt usuwający link
  2. function removeRow(row) {
  3. var catNumber = $(row).data('rowCat');
  4. var mainNumber = $(row).data('rowMain');
  5. var linkNumber = $(row).data('rowLink');
  6.  
  7. $('#cat' + catNumber + 'main' + mainNumber).find('.row:last-child').remove();
  8. return false;
  9. }



teraz tylko zeby 1 zawsze zostal

pewnie cos takiego trzeba
  1. function removeRow(row) {
  2. var catNumber = $(row).data('rowCat');
  3. var mainNumber = $(row).data('rowMain');
  4.  
  5. if ($('#cat' + catNumber + 'main' + mainNumber).not('.row:first-child')){
  6. $('#cat' + catNumber + 'main' + mainNumber).find('.row:last-child').remove();}
  7. return false;
  8. }

no ale takie kombinowanie nie dziala

@EDIT

mam to! dziękuję

  1. function removeRow(row) {
  2. var catNumber = $(row).data('rowCat');
  3. var mainNumber = $(row).data('rowMain');
  4.  
  5. $('#cat' + catNumber + 'main' + mainNumber).find('.row:last-child').not('.row:first-child').remove();
  6. return false;
  7. }


to teraz ,a, amnalogiczna rzecz:

  1. // Skrypt dodający rozdział
  2. var n = 1;
  3. function addMain(row) {
  4. var catNumber = $(row).data('rowCat');
  5. var mainNumber = $(row).data('rowCount');
  6. var x = mainNumber + n;
  7. var newMain = $('#cat' + catNumber);
  8.  
  9. $('<div class="row rozdzial" style="margin-bottom: 5px;"><div class="col-sm-8"><div class="form-group"><label>Tytuł rozdziału</label><input class="form-control text-center" type="text" name="mainTitle[]" required /></div></div><div class="col-sm-2"><div class="form-group"><label>Strona rozdziału</label><input class="form-control text-center" type="text" name="mainPage[]" required /></div></div><div class="col-sm-1"><div class="form-group"><label>Usuń rozdział</label><button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-row-cat=' + x + ' data-row-main=' + x + ' onclick="return removeMain(this);"><span class="fa fa-remove icon-md" title="Usuń rozdział"></span></button></div></div><div class="col-sm-1"><div class="form-group"><label>Dodaj rozdział</label><button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat=' + x + ' data-row-main=' + x + ' onclick="return addMain(this);"><span class="fa fa-plus icon-md" title="Dodaj rozdział"></span></button></div></div></div><div id="cat' + catNumber + 'main' + x + '"><div class="row"><div class="col-sm-8"><input class="form-control text-center" type="text" name="linkTitle[]" required /></div><div class="col-sm-2"><input class="form-control text-center" type="text" name="linkPage[]" required /></div><div class="col-sm-1"><button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-row-cat="' + catNumber + '" data-row-main="0" onclick="return removeRow(this);"><span class="fa fa-remove icon-md" title="Usuń link"></span></button></div><div class="col-sm-1"><button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat="' + catNumber + '" data-row-main="0" onclick="return addRow(this);"><span class="fa fa-plus icon-md" title="Dodaj link"></span></button></div></div></div>').appendTo(newMain);
  10. n++;
  11. return false;
  12. }


@EDIT

ok tam juz poprawione, musialem dodac zmienna "n", pierwszy raz bedzie ok, ale przy kolejnym tworze n wychodzi mi NaN

  1. var n = 0;
  2. function addMain(row) {
  3. var catNumber = $(row).data('rowCat');
  4. var rowCount = $(row).data('rowCount');
  5. var mainNumber = rowCount + n;
  6. var newMain = $('#cat' + catNumber);
  7.  
  8. $('<div class="row rozdzial" style="margin-bottom: 5px;"><div class="col-sm-8"><div class="form-group"><label>Tytuł rozdziału</label><input class="form-control text-center" type="text" name="mainTitle[]" required /></div></div><div class="col-sm-2"><div class="form-group"><label>Strona rozdziału</label><input class="form-control text-center" type="text" name="mainPage[]" required /></div></div><div class="col-sm-1"><div class="form-group"><label>Usuń rozdział</label><button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-row-cat=' + catNumber + ' data-row-main=' + mainNumber + ' onclick="return removeMain(this);"><span class="fa fa-remove icon-md" title="Usuń rozdział"></span></button></div></div><div class="col-sm-1"><div class="form-group"><label>Dodaj rozdział</label><button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat=' + catNumber + ' data-row-main=' + mainNumber + ' onclick="return addMain(this);"><span class="fa fa-plus icon-md" title="Dodaj rozdział"></span></button></div></div></div><div id="cat' + catNumber + 'main' + mainNumber + '"><div class="row"><div class="col-sm-8"><input class="form-control text-center" type="text" name="linkTitle[]" required /></div><div class="col-sm-2"><input class="form-control text-center" type="text" name="linkPage[]" required /></div><div class="col-sm-1"><button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-row-cat="' + catNumber + '" data-row-main=' + mainNumber + ' onclick="return removeRow(this);"><span class="fa fa-remove icon-md" title="Usuń link"></span></button></div><div class="col-sm-1"><button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat="' + catNumber + '" data-row-main=' + mainNumber + ' onclick="return addRow(this);"><span class="fa fa-plus icon-md" title="Dodaj link"></span></button></div></div></div>').appendTo(newMain);
  9. n++;
  10. return false;
  11. }


Ten post edytował shpaque 14.06.2018, 10:18:12
Go to the top of the page
+Quote Post
Neutral
post 14.06.2018, 11:01:40
Post #27





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

Ostrzeżenie: (0%)
-----


Napisz może parseInt lub parseFloat.

Ten post edytował Neutral 14.06.2018, 11:01:59
Go to the top of the page
+Quote Post
shpaque
post 14.06.2018, 17:34:27
Post #28





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


nie dzialaja

jak to zrobic?

  1. var n = 1;
  2. function addMain(row) {
  3. var catNumber = $(row).data('rowCat');
  4. var rowCount = $(row).data('rowCount');
  5. var mainNumber = rowCount + n;
  6. var newMain = $('#cat' + catNumber);
  7.  
  8. $('<div class="row rozdzial" style="margin-bottom: 5px;"><div class="col-sm-8"><div class="form-group"><label>Tytuł rozdziału</label><input class="form-control text-center" type="text" name="mainTitle[]" required /></div></div><div class="col-sm-2"><div class="form-group"><label>Strona rozdziału</label><input class="form-control text-center" type="text" name="mainPage[]" required /></div></div><div class="col-sm-1"><div class="form-group"><label>Usuń rozdział</label><button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-row-cat=' + catNumber + ' data-row-main=' + mainNumber + ' onclick="return removeMain(this);"><span class="fa fa-remove icon-md" title="Usuń rozdział"></span></button></div></div><div class="col-sm-1"><div class="form-group"><label>Dodaj rozdział</label><button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat=' + catNumber + ' data-row-main=' + mainNumber + ' onclick="return addMain(this);"><span class="fa fa-plus icon-md" title="Dodaj rozdział"></span></button></div></div></div><div id="cat' + catNumber + 'main' + mainNumber + '"><div class="row"><div class="col-sm-8"><input class="form-control text-center" type="text" name="linkTitle[]" required /></div><div class="col-sm-2"><input class="form-control text-center" type="text" name="linkPage[]" required /></div><div class="col-sm-1"><button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-row-cat="' + catNumber + '" data-row-main=' + mainNumber + ' onclick="return removeRow(this);"><span class="fa fa-remove icon-md" title="Usuń link"></span></button></div><div class="col-sm-1"><button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat="' + catNumber + '" data-row-main=' + mainNumber + ' onclick="return addRow(this);"><span class="fa fa-plus icon-md" title="Dodaj link"></span></button></div></div></div>').appendTo(newMain);
  9. n++;
  10. return false;
  11. }
Go to the top of the page
+Quote Post
Neutral
post 14.06.2018, 22:52:44
Post #29





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

Ostrzeżenie: (0%)
-----


Nie jestem pewien, ale może to pójdzie:
Kod
var mainNumber = parseFloat(rowCount) + parseFloat(n);


Ten post edytował Neutral 14.06.2018, 22:52:58
Go to the top of the page
+Quote Post
shpaque
post 15.06.2018, 09:13:41
Post #30





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


wtedy dostaje tak:

pierwszy generowany ma id "cat1Main0"
drugi: cat1Main2 questionmark.gif
trzeci Cat1MainNaN

  1. var c = 0;
  2. function addMain(row) {
  3. var catNumber = $(row).data('rowCat');
  4. var rowCount = $(row).data('rowCount');
  5. var n = c;
  6. var mainNumber = rowCount + n;
  7. var newMain = $('#cat' + catNumber);
  8.  
  9. $('<div class="row rozdzial" style="margin-bottom: 5px;"><div class="col-sm-8"><div class="form-group"><label>Tytuł rozdziału</label><input class="form-control text-center" type="text" name="mainTitle[]" required /></div></div><div class="col-sm-2"><div class="form-group"><label>Strona rozdziału</label><input class="form-control text-center" type="text" name="mainPage[]" required /></div></div><div class="col-sm-1"><div class="form-group"><label>Usuń rozdział</label><button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-row-cat=' + catNumber + ' data-row-main=' + mainNumber + ' onclick="return removeMain(this);"><span class="fa fa-remove icon-md" title="Usuń rozdział"></span></button></div></div><div class="col-sm-1"><div class="form-group"><label>Dodaj rozdział</label><button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat=' + catNumber + ' data-row-main=' + mainNumber + ' onclick="return addMain(this);"><span class="fa fa-plus icon-md" title="Dodaj rozdział"></span></button></div></div></div><div id="cat' + catNumber + 'main' + mainNumber + '"><div class="row"><div class="col-sm-8"><input class="form-control text-center" type="text" name="linkTitle[]" required /></div><div class="col-sm-2"><input class="form-control text-center" type="text" name="linkPage[]" required /></div><div class="col-sm-1"><button class="btn btn-md text-center btn-delete" style="width: 100%; height: 100%;" data-row-cat="' + catNumber + '" data-row-main=' + mainNumber + ' onclick="return removeRow(this);"><span class="fa fa-remove icon-md" title="Usuń link"></span></button></div><div class="col-sm-1"><button class="btn btn-md text-center btn-add" style="width: 100%; height: 100%;" data-row-cat="' + catNumber + '" data-row-main=' + mainNumber + ' onclick="return addRow(this);"><span class="fa fa-plus icon-md" title="Dodaj link"></span></button></div></div></div>').appendTo(newMain);
  10. c++;
  11. return false;
  12. }


nawet jak tak to rozpisze to pierwszy jest cat0main0, drugi cat0main1, a juz trzeci cat0mainNan

Go to the top of the page
+Quote Post

2 Stron V  < 1 2
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 11:36