Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nietypowy formularz JS+PHP
Forum PHP.pl > Forum > Po stronie przeglądarki
rav_83
mam formularz, w ktorym pole select po wybraniu jakiejs dowolnej wartosci dubluje sie. W tym momencie, user po wybraniu z selecta koloru, np. czerwonego od razu widzi ponizej identyczny select i moze jeszcze wybrac kolor niebieski itd.. itd..
Problem pojawia sie przy przesylaniu zmiennych z tego formularza do skryptu php. Normalnie zmienne wysylam metoda GET jako nazwy pol formularza. Jednak w tym przypadku, select dotyczacy koloru ma tylko jedna nazwe, a user mogl tych kolorow wybrac np 3, czyli teeoretycznie powinny byc 3 zmienne. Teoretycznie, bo jest tylko jedna.

Jak wiec przeslac do skryptu .php kilka zmiennych z pola formularza o jednej nazwie ?

ponizej zamieszczam JS odpowiedzialny za dublowanie pol formularza

  1. <script type="text/javascript">
  2. <!--
  3. function changeMultipleFieldRemove(field) {
  4. if(!field.value) {
  5. row=field.parentElement.parentElement;
  6. table=field.parentElement.parentElement.parentElement;
  7. table.deleteRow(row.rowIndex);
  8. }
  9. }
  10.  
  11. function changeMultipleField(field) {
  12. if(field.value) {
  13. fieldCopy=field.parentElement.innerHTML
  14. row=field.parentElement.parentElement;
  15. table=field.parentElement.parentElement.parentElement;
  16. //ADD NEW ROW WITH FIELD
  17. newRow=table.insertRow(-1)
  18. newCell=newRow.insertCell(0)
  19. newCell.innerHTML=fieldCopy;
  20. fieldNew=newCell.children[0];
  21. fieldNew.selectedIndex=0;
  22. field.onchange=function(){changeMultipleFieldRemove(field)};
  23.  
  24. //alert(fieldCopy);
  25. //alert(field);
  26. }
  27. }
  28. //-->
  29. </script>
nospor
Nadaj dla selecta nazwę z nawiasami kwadratowymi (np. ala[]), spowoduje to, że dostaniesz pod zmienna ala tablicę wartości z każdego selecta
rav_83
no wlasnie w ten sposob myslalem.. ale jak dokladnie bedzie sie nazywac ta tablica? i jak nazywac sie beda te zmienne?
nospor
no tablica bedzie się nazywać tak jak napisalem, czyli np. ala zrobisz $_GET['ala'] lub $_POST['ala'] (zalezy jak bedziesz to wysylal) i juz maz tablicę selectów. Będzie miala ona indexy od 0 do iloscselectów-1. index 0 to pierwszy select wkolejnosci wystepowania na stronie, index 1 to kolejny itd.
Proponuje Ci taką metodę, bo ty kopiujesz w calosci komórkę tabeli z selectem łączie z nazwą. Przy takiej metodzie raczej nie widzę innej mozliwości. Gdybyś mógł się dobrać do nazwy select'a to co innego, ale tak pozostaje chyba tylko to
rav_83
no wiec pokolei.
1) nazywam selecta:
  1. <select name="dzielnica[]" style="font-family: Verdana; font-size: 8pt">


i nastepnie przesylam zmienne do skryptu php metoda GET oraz 'odbieram' te zmienne:
  1. <?php
  2.  
  3. if(is_string($_GET['dzielnica'])) 
  4.  $tablica=$_GET['dzielnica'];
  5.  else
  6. die('Błąd: -- cos nie tak z ta dzielnica!');
  7.  
  8. PRINT &#092;"<br>\";
  9. echo $tablica
  10.  
  11. ?>
;

skrypt sie wykrzacza, co robie zle?
nospor
$_GET['dzielnica'] nie jest string a tablicą, więc funkcja is_string($_GET['dzielnica']) zwraca cie false. Pisalem przeciez ze otrzymasz tablicę. Proszę czytać posty dokładnie.
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.