DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   (X)HTML, JavaScript, DHTML, XML, CSS (http://www.devprotalk.com/forumdisplay.php?f=8)
-   -   Post request u drugom prozoru... (http://www.devprotalk.com/showthread.php?t=3143)

LiquidBrain 27. 06. 2007. 14:44

Post request u drugom prozoru...
 
Pozdrav,
kako bi moglo da se izvede da automatski napravim post request na neku stranu koristeci samo java script, ali sa tim da se rezultat prikaze u novom prozoru...

Tipa da klikom na link event onClick() odradi submit i rezultat prikaze u novom prozoru...


Hvala unapred.

cvele 27. 06. 2007. 14:48

<form method="post" action="yourscript" onSubmit="return false;" target="_blank">

this.form.submit();

LiquidBrain 27. 06. 2007. 14:53

Izgleda da sam lose formulisao pitanje, potrebno je uraditi celu tu pricu bez koriscenja form taga. Znaci samo javascript, i naravno znam da tu trebam da definisem vrednosti koje se postuju... ali to nije problem, problem mi je samo postovanje iz novog prozora...

Hvala.

jablan 27. 06. 2007. 15:45

Pa možeš dinamički da generišeš form tag pre nego što ga submituješ.

misk0 27. 06. 2007. 19:29

I meni je to trebalo, tj treba mi idalje. Sa GET rijesis lako tako sto sve parametre potrpas u link, ali ovo je komplikovanije :)

Ilija Studen 27. 06. 2007. 19:34

Nije ništa komplikovano. Evo je funkcija iz activeCollab 1.0 koja na link kači mogućnost submitovanja POST zahteva (to koristim za sve linkove koji vrše neke modifikacije na serveru):

Kôd:

/**
 * Send post request to specific link
 *
 * @param string the_link
 */
App.postLink = function(the_link) {
  var form = document.createElement('form');
  document.body.appendChild(form);
 
  $(form).attr({
    'action' : the_link,
    'method' : 'post'
  });
 
  form.submit();
 
  return false;
};

Ovo je mali mix klasičnog DOM-a i jQueryija, ali kontam da ćete moći da izvučete šta vam treba.

ivanhoe 28. 06. 2007. 00:41

moze i ajaxom da se uradi post zahtev koji ce ti vratiti html, i onda samo otvoris novi prozor i upises mu to u innerHTML

LiquidBrain 28. 06. 2007. 13:23

Evo dokle sam dogurao... i sada ova prica radi pod Internet Exploreom i Safarijem, ali ne radi pod firefox-om :(

Kôd:


str := 'function doSubmit() {
        document.write("<form name=''submitForm'' action=''http://www.apr.sr.gov.yu/RepsisPublicSite/Search/GeneralEnterpriseSearch.aspx'' method=''post'' target=''_blank''>");
        document.write("<input type=hidden name=''ucHeader:rbtnlstChangeCulture'' value=''sr-SP-Cyrl''>");
        document.write("<input type=hidden name=''__VIEWSTATE'' value=''dDwtNTYwMzQ1MzM4O3Q8cDxsPEJhc2VQYWdlX1VzZXJTZXNzaW9uSWQ7PjtsPDs+PjtsPGk8MD47aTwxPjs+O2w8dDxwPGw8aW5uZXJodG1sOz47bDzQn9GA0LXRgtGA0LDQs9CwINC/0YDQuNCy0YDQtdC00L3QuNGFINC00YDRg9GI0YLQsNCy0LA7Pj47Oz47dDw7bDxpPDA+O2k8MT47aTwyPjtpPDM+O2k8NT47aTw2PjtpPDc+O2k8OT47PjtsPHQ8O2w8aTwwPjtpPDE+O2k8Mj47aTwzPjtpPDQ+O2k8NT47aTw2Pjs+O2w8dDx0PHA8cDxsPFZpc2libGU7PjtsPG88dD47Pj47PjtwPGw8aTwwPjtpPDE+O2k8Mj47PjtsPHA80KHRgNC/0YHQutC4ICjRm9C40YDQuNC70LjRhtCwKTtzci1TUC1DeXJsPjtwPFNycHNraSAobGF0aW5pY2EpO3NyLVNQLUxhdG4+O3A8RW5nbGlzaDtlbi1VUz47Pj47bDxpPDA+Oz4+Ozs+O3Q8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47Oz47dDxwPGw8VmlzaWJsZTs+O2w8bzxmPjs+Pjs7Pjt0PHA8cDxsPFRleHQ7VmlzaWJsZTs+O2w8bG5rYnRuTG9nb3V0O288Zj47Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7VmlzaWJsZTs+O2w8bG5rYnRuTG9naW47bzxmPjs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w80J/QvtGH0LXRgtC90LAg0YHRgtGA0LDQvdC40YbQsDtodHRwOi8vd3d3LmFwci5zci5nb3YueXU7Pj47Pjs7Pjt0PHA8bDxUZXh0Oz47bDzQn9GA0LXRgtGA0LDQs9CwINC/0YDQuNCy0YDQtdC00L3QuNGFINC00YDRg9GI0YLQsNCy0LA7Pj47Oz47Pj47dDxwPHA8bDxtU2VhcmNoQWN0aW9uOz47bDxTcGlubmFrZXIuUmVnaXN0ZXIuUmVwc2lzLkNsaWVudC5QdWJsaWNTaXRlLlNlYXJjaC5HZW5lcmFsQ29udHJvbHMuRW50ZXJwcmlzZVNlYXJjaCtTZWFyY2hBY3Rpb25UeXBlLCBTcGlubmFrZXIuUmVnaXN0ZXIuUmVwc2lzLkNsaWVudC5QdWJsaWNTaXRlLCBWZXJzaW9uPTEuMC4yNzIxLjI3NDUxLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGw8QnVzaW5lc3NFbnRpdHlWaWV3Pjs+Pjs+O2w8aTwxPjtpPDM+O2k8NT47aTw3PjtpPDk+O2k8MTE+O2k8MTM+O2k8MTU+Oz47bDx0PHA8cDxsPENoZWNrZWQ7PjtsPG88dD47Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPNCd0LDQt9C40LIg0L/RgNC40LLRgNC10LTQvdC+0LMg0YHRg9Cx0ZjQtdC60YLQsDs+Pjs+Ozs+O3Q8cDxwPGw8Rm9yZUNvbG9yO1RleHQ7XyFTQjs+O2w8MjxCbGFjaz470J3QsNGH0LjQvSDQv9GA0LXRgtGA0LDQs9C1OjtpPDQ+Oz4+Oz47Oz47dDx0PHA8cDxsPEVuYWJsZWQ7PjtsPG88dD47Pj47PjtwPGw8aTwwPjtpPDE+O2k8Mj47aTwzPjs+O2w80KLQsNGH0L3QvjvQn9C+0YfQuNGa0LUg0YHQsDvQl9Cw0LLRgNGI0LDQstCwINGB0LA70KHQsNC00YDQttC4Oz4+Oz47Oz47dDxwPHA8bDxFbmFibGVkOz47bDxvPHQ+Oz4+Oz47Oz47dDxwPHA8bDxDaGVja2VkOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDzQnNCw0YLQuNGH0L3QuCDQsdGA0L7RmDs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDtFbmFibGVkOz47bDxcZTtvPGY+Oz4+Oz47Oz47Pj47dDxwPHA8bDxUZXh0Oz47bDzQn9GA0L7QvdCw0ZLQuDs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w80J/QvtC90LjRiNGC0Lg7Pj47Pjs7Pjt0PHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Ozs+O3Q8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47Oz47dDxwPGw8VmlzaWJsZTs+O2w8bzxmPjs+Pjs7Pjt0PDtsPGk8MD47aTwxPjs+O2w8dDxwPGw8VGV4dDs+O2w80KDQtdC/0YPQsdC70LjQutCwINCh0YDQsdC40ZjQsCwg0JDQs9C10L3RhtC40ZjQsCDQt9CwINC/0YDQuNCy0YDQtdC00L3QtSDRgNC10LPQuNGB0YLRgNC1Oz4+Ozs+O3Q8cDxsPFRleHQ7PjtsPNCy0YDRhSDRgdGC0YDQsNC90LU7Pj47Oz47Pj47Pj47Pj47bDx1Y0VudGVycHJpc2VTZWFyY2g6cmJ0bkZ1bGxUaXRsZTt1Y0VudGVycHJpc2VTZWFyY2g6cmJ0blJlZ2lzdHJ5Q29kZTt1Y0VudGVycHJpc2VTZWFyY2g6cmJ0blJlZ2lzdHJ5Q29kZTs+PoLRopApiW6z0dL5ibVsJlw1bh7s''>");
    '.
    partner maticnaSt isNilOrEmpty
        ifTrue:
            [str := str
                        , 'document.write("<input type=hidden name=''ucEnterpriseSearch:SearchGroup'' value=''rbtnFullTitle''>");
            document.write("<input type=hidden name=''ucEnterpriseSearch:rbtnSearchType'' value=''Contains''>");
            document.write("<input type=hidden name=''ucEnterpriseSearch:txtFullTitle'' value='''
                            , partner companyName , '''>");']
        ifFalse:
            [str := str
                        , 'document.write("<input type=hidden name=''ucEnterpriseSearch:SearchGroup'' value=''rbtnRegistryCode''>");
            document.write("<input type=hidden name=''ucEnterpriseSearch:txtReferenceNumber'' value='''
                            , partner maticnaSt printString , '''>");'].
    str := str
                , 'document.write("<input type=hidden name=''btnFind'' value=''???????''>");
            document.write("</form>");
            document.submitForm.submit();
    };'.
    self addjavascript: str.
    ^'<a href="#" onClick="doSubmit()"><b>www.apr.sr.gov.yu</b></a>'

Inace kod je u smalltalk-u... pa je malo cudan, ali verujem da cete se snaci...

35-68 28. 06. 2007. 14:33

Mozda posluzi
 
Bas me zaintrigirao ovaj zahtev, mislio sam da hoces da napravis post submit totalno bez forme, ali vidim u predhodnom postu, da ih ipak koristis u okviru javascripta, mozda ti ovo posluzi, jutros sam se malo igrao :)
Kôd:

function Funkcija() {
                var i, parametar, parametri;
                var ime = 'getpost';
                var method = 'post';
                var action = 'PHP.php';
                var target = '_blank';
                var broj = arguments.length;

                var forma = document.createElement('form');
                forma.setAttribute('id', ime);
                forma.setAttribute('name', ime);
                forma.setAttribute('method', method);
                forma.setAttribute('action', action);
                forma.setAttribute('target', target);
                document.body.appendChild(forma);

                for(i=0; i<broj; i++) {
                    var parametri = arguments[i].split('=');
                    parametar = document.createElement('input');
                    parametar.setAttribute('type', 'hidden');
                    parametar.setAttribute('id', parametri[0]);
                    parametar.setAttribute('name', parametri[0]);
                    parametar.setAttribute('value', parametri[1]);
                    document.getElementById(ime).appendChild(parametar);
                }
                document.getElementById(ime).submit();
            }

A, pozivas npr. sa
Kôd:

<a href="#GETPOST" onclick="Funkcija('Test1=Test2','Test3=Test4');">LINK</a>
Mozes i samo vrednosti parametra da prosledjujes, stim da se Funkcija malo menja dodajuci joj automatsko dodeljivanje id i name atributa.
Srecno ...

cvele 28. 06. 2007. 14:44

ti to po onoj narodnoj "sto prosto kad moze komplikovano" :) ?

Kôd:

function postSubmit(action, postVars) {
  var form = document.createElement('form');
  document.body.appendChild(form);
  form.action = action;
  form.method = 'post';
  form.target = '_blank';
  i=0;
  hidden = new Array();
  for ( keyVar in postVars ) {
  hidden[i] = document.createElement('input');
  hidden[i].type = 'hidden';
  hidden[i].name = keyVar;
  hidden[i].value = postVars[keyVar];
  form.appendChild(hidden[i]);
  }
  form.submit();
}

na brzinu... trebalo bi da radi samo malo "ulepsaj" :P

edit:
action ti je url gde hoces da submitujes, a postVars je asocijativni niz kome je kljuc ime varijable koju hoces da submitujes a vrednost... pa vrednost varijable koju submitujes


Vreme je GMT +2. Trenutno vreme je 10:31.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.