Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> nietypowy formularz JS+PHP
rav_83
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 12.03.2005

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


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>
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Nadaj dla selecta nazwę z nawiasami kwadratowymi (np. ala[]), spowoduje to, że dostaniesz pod zmienna ala tablicę wartości z każdego selecta
Go to the top of the page
+Quote Post
rav_83
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 12.03.2005

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


no wlasnie w ten sposob myslalem.. ale jak dokladnie bedzie sie nazywac ta tablica? i jak nazywac sie beda te zmienne?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
rav_83
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 12.03.2005

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


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?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




$_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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 12.10.2025 - 01:45