Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zliczanie ilości $_POST o tej samej nazwie różniącą się ostatnią cyfrą
Forum PHP.pl > Forum > PHP
Marecki669
Witam,
mam problem otóż mam formularz zamówienia i jest w nim do podania nazwa produktu domyślnie jest jedno pole ale jest funkcja dodająca dodatkowe jedno pole. Domyślne pole ma nazwę $_POST['product_name'], każde następne ma nazwę $_POST['product_name_+1']. Formularz ten przesyłam do pliku PDF jako tabela i teraz chcę zrobić że tyle ile jest tych pól z produktami tyle będzie wierszy w tabeli i problem polega na tym że nie wiem jak zliczyć ile jest tych produktów. Dodając że liczba produktów do dodania jest nieokreślona można dodawać wiele produktów.

Kod z formularza:
  1. $addOrder_local .= '<div id="p_scents"><label>Nazwa produktu:</label><br><input type="text" name="product_name" value="'.$_POST['product_name'].'"><br></div><br>';
  2. $addOrder_local .= '<a href="#" id="addScnt"><h4>Dodaj następny produkt</h4></a><br>';


Kod dodający następne pole
  1. $(function() {
  2. var scntDiv = $('#p_scents');
  3. var i = $('#p_scents p').size() + 1;
  4.  
  5. $('#addScnt').live('click', function() {
  6. $('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" name="product_name_' + i +'" value="" placeholder="" /></label> <a href="#" id="remScnt">Usuń</a></p>').appendTo(scntDiv);
  7. i++;
  8. return false;
  9. });
  10.  
  11. $('#remScnt').live('click', function() {
  12. if( i > 1 ) {
  13. $(this).parents('p').remove();
  14. i--;
  15. }
  16. return false;
  17. });
  18. });


Z góry dziękuję i pozdrawiam wink.gif
redeemer
Kod
<input ... name="product_name[]" ...>
  1. ...
  2. var_dump($_POST['product_name']);
  3. ...
Marecki669
Dobra dzięki jeden problem rozwiązany wink.gif

a teraz następne bo to wyświetla tablice a teraz żeby zliczyło ile jest tych wyników w tablicy i podało ją do zmiennej bo chodzi mi o to żeby tyle ile jest produktów tyle razy się powtórzył wiersz czyli to:

  1. <tr>
  2. <td>&nbsp;</td>
  3. <td>&nbsp;</td>
  4. <td>&nbsp;</td>
  5. <td>&nbsp;</td>
  6. </tr>
redeemer
Pętla po tablicy to podstawy języka (np. foreach lub for + count).
Marecki669
Pomożecie z tym błędem, nie mogę znaleźć przyczyny

Błąd:
Parse error: syntax error, unexpected T_FOR in /home/****/public_html/system/mpdf/testpdf.php on line 21

  1. <?php
  2. include('mpdf.php');
  3.  
  4. $html = '
  5.  
  6. <table width="514" border="1">
  7. <tr>
  8. <td colspan="4">Kupujący: '.$_POST['nick'].'</td>
  9. <td width="127">Faktura: '.$fv.'</td>
  10. </tr>
  11. <tr>
  12. <td width="89">Nr transakcji</td>
  13. <td width="147">Nazwa przedmiotu (nr)</td>
  14. <td width="49">Sztuk</td>
  15. <td width="68">Cena</td>
  16. <td>Data sprzedaży</td>
  17. </tr>
  18. <tr>
  19. <td rowspan="'.$product_n ++.'">'.$_POST['nr_trans'].'</td>
  20. </tr>
  21. 'for ($i=0; $i < $product_n; $i++) { '
  22. <tr>
  23. <td>'.$_POST['product_name['.$i.']'].'</td>
  24. <td>'.$_POST['number['.$i.']'].'</td>
  25. <td>'.$_POST['prise['.$i.']'].'</td>
  26. <td>'.$_POST['date_of_sale'].'</td>
  27. </tr>
  28. '
  29. }'
  30. <tr>
  31. <td colspan="3">Koszty wysyłki</td>
  32. <td>&nbsp;</td>
  33. <td rowspan="2">&nbsp;</td>
  34. </tr>
  35. <tr>
  36. <td colspan="3">Suma do zapłaty</td>
  37. <td>&nbsp;</td>
  38. </tr>
  39. <tr>
  40. <td colspan="5"><p>Forma płatności:</p>
  41. <p>Sposób dostawy:</p></td>
  42. </tr>
  43. </table>';
  44.  
  45. $mpdf=new mPDF();
  46. $mpdf->WriteHTML($html);
  47.  
  48. $mpdf->Output('pdftest.pdf', 'D');
  49. ?>
Turson
zamknij całkowicie echo a dopiero pętla, czyli
echo '.....';
for(){

}
Marecki669
a coś mi chyba źle działa ta pętla bo nie pokazuje wartości zmiennych
Turson
Podejrzyj, co $_POST zawiera, bo podejrzewam, że ma być $_POST['product_name'][$i]
Marecki669
wywołałem tą funkcją:
  1. var_dump($_POST['product_name']);


to pokazało:

  1. array(2) { [0]=> string(7) "Bateria" [1]=> string(5) "Ekran" }


a zrobienie tego
  1. $_POST['product_name']['.$i.']


nie pomogło
Turson
$_POST['product_name'][$i]
$_POST['product_name']['.$i.']

znajdź różnice facepalmxd.gif

I włącz raportowanie błędów, bo już dawno powinno ci posypać "error undefined index..."
Marecki669
ahh sory działa. Dzięki wink.gif

tylko teraz jeszcze przy '.$product_n ++.'

nie dodaje mi
Turson
A jak ma działać skoro nie zdefiniowałeś co to jest i ile wynosi $product_n, ponadto inkrementujesz wartość, która nie jest w żadnej pętli itd. więc nigdy nie urośnie.
Marecki669
w drugim pliku mam $product_n = count($_POST['product_name']);
Turson
Wstaw po prostu
  1. <td rowspan="'.$product_n+1.'">'.$_POST['nr_trans'].'</td>
Marecki669
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/flipface/public_html/system/mpdf/testpdf.php on line 19
Turson
  1. <td rowspan="'.($product_n+1).'">'.$_POST['nr_trans'].'</td>
*
Marecki669
o to chodziło dzięki wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.