Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> name="doclist[]" i funkcje js, taki atrybut wyburacz te funkcje
berdyk
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 30.05.2003

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


Witam

W formularzu am takie kontrolki:
  1. <select name="dokument" multiple="multiple">
  2. <option value="1">1</option>
  3. <option value="2">2</option>
  4.  
  5. <INPUT class=log onclick="addSelectedToList('post','dokument','doclist')" type=button value="dodaj do listy">
  6.  
  7. <SELECT name=doclist multiple="multiple"></SELECT>
  8.  
  9. <INPUT onclick="delSelectedFromList('post','doclist')" type=button value="Usuń z listy">


oraz funkcje JS

Kod
function addSelectedToList( frmName, srcListName, tgtListName ) {
    var form = eval( 'document.' + frmName );
    var srcList = eval( 'form.' + srcListName );
    var tgtList = eval( 'form.' + tgtListName );

    var srcLen = srcList.length;
    var tgtLen = tgtList.length;
    var tgt = "x";

    //build array of target items
    for (var i=tgtLen-1; i > -1; i--) {
  tgt += "," + tgtList.options[i].value + ","
    }

    //Pull selected resources and add them to list
    for (var i=srcLen-1; i > -1; i--) {
  if (srcList.options[i].selected && tgt.indexOf( "," + srcList.options[i].value + "," ) == -1) {
     opt = new Option( srcList.options[i].text, srcList.options[i].value );
     tgtList.options[tgtList.length] = opt;
  }
    }
}

function delSelectedFromList( frmName, srcListName ) {
    var form = eval( 'document.' + frmName );
    var srcList = eval( 'form.' + srcListName );

    var srcLen = srcList.length;

    for (var i=srcLen-1; i > -1; i--) {
  if (srcList.options[i].selected) {
     srcList.options[i] = null;
  }
    }
}


staram się przesłac za pomocą metody POST WARTOŚCI pola "doclist" jednak po wyświetlenu przesłanej zmiennej
  1. <?php
  2. $_POST["doclist"]
  3. ?>

jej wartość jest zawsze ustawiona na ostatni element na liście w polu "doclist".

I tu ból bo ja chcę przesłć kilka wartości przez to pole tz przesłac tabele.

Dobra, zamieniam sobie nazwę pola "doclist" na "doclist[]" (zamieniam wszędzie), co w normalnych warunkach pozwala mi na przesłanie tej tabeli, ale nie tu.
Tabeli nie będzie bo javascript się przy tej nawzie pola WYBURACZ.

Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
orson
post
Post #2





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

aby odwołać się w js do elementu z [] w nazwie musisz użyć składni:
Kod
document.getElementByName(nazwa_z_doklejonymi+'[]').item(int - kolejne elementy od 0 do length-1)


pozdrawiam
Go to the top of the page
+Quote Post
berdyk
post
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 30.05.2003

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


Możesz mi napisać w którym miejscu powininem to dopisać
czy juz w samym formularzu.
pozdro

ja wymysliłem sobie to tak, że musi być jakas 3 funkcja js (do której nie wiem jak sie zabrac) ktora przekształci mi pozycje wartości "doclisty" w łańcuch który będę mógł przesłać dalej. bo tak naprawdę po przesłaniu tabelę otrzymaną z $_POST["doclis"] exploduję w php.

Ten post edytował berdyk 30.08.2005, 08:54:21
Go to the top of the page
+Quote Post
orson
post
Post #4





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

zmień nazwę 2 selecta na [] a w kodzie js zmień
Kod
var tgtList = eval( 'form.' + tgtListName );

na
Kod
var tgtList = document.getElementsByName(tgtListName).item(0)


pozdrawiam
Go to the top of the page
+Quote Post
berdyk
post
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 30.05.2003

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


orson super dzięki działa

trzeba było jeszcze zmienic analogicznie w drugiej funkcji js z
Kod
var srcList = eval( 'form.' + srcListName );

na
Kod
var srcList = document.getElementsByName(srcListName).item(0);


tylko powiedz mi co zrobić by z tego drugiego selecta słał wszystkie elementy a nie tylko ostatni.
teraz jest tak że wysyła (JEŚLI NIE SĄ WSZYSTKIE ZAZNACZONE, w selecie) ostatni element na liście,
JEŚLI WSZYSTKIE ZAZNACZONE, przesyła tabelę jak sie patrzy.

pozdro
Go to the top of the page
+Quote Post
orson
post
Post #6





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

he (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) przecież żeby przesłał to musi być selected ... inaczej to nie miałoby żadnego sensu gdyby zawsze słał całość ...

pozdrawiam
Go to the top of the page
+Quote Post
berdyk
post
Post #7





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 30.05.2003

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


wlasnie ma sens kiedy przekładasz z jednego selecta do drugiego
czyli z jednego okienka do drugiego zeby z tego drugiego poslac calosc co z pierwszego wlozylem
zobacz do gory tematu
Go to the top of the page
+Quote Post
orson
post
Post #8





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

ja wiem o co ci chodzi ale to przecież bez sensu żeby select się tak zachowywał ... no pomyśl ... to przecież jest SELECT ! musisz cos wybrać żeby to było przesłane ... jedynym wyjściem (takim na szybko) to w pętli w czasie wysyłania dać wszystkim elementom selected = true w js ... albo w ukrytych inputach przesłać ... jeżeli dodasz [] do nazw inputów to też dostaniesz array ...

pozdrawiam
Go to the top of the page
+Quote Post
berdyk
post
Post #9





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 30.05.2003

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


Hejka

Podoba mi sie opcja pętli
Coś więcej na ten temat, moze jakis mały kodzik. (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
Go to the top of the page
+Quote Post
orson
post
Post #10





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

to już musisz sam ... odwołujesz się do listy potem robisz fora po length i zmieniasz im selected na true

pozdrawiam
Go to the top of the page
+Quote Post
berdyk
post
Post #11





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 30.05.2003

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


tylko napisz mi na koniec keidy to robie
onsubmit czy przeaz inne zdarzenie

pozdrawiam
Go to the top of the page
+Quote Post
orson
post
Post #12





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

on submit

pozdrawiam
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: 23.08.2025 - 04:50