Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Post do formularza w loopie
Forum PHP.pl > Forum > PHP
little_MASTER
Wie ktoś może jak w pętli wywoływać zapytania do pliku??
Tzn. Mam plik który dodaje do mojej bazy danych tytuły filmów.
Mam formularz z polami: Tytuł, aktorzy, opis, strona.
Chciałbym w pętli wysyłać do tego pliku metodą post moje dane.
Np gdy mam do dodania 240 odcinków DragonBall'a to nie chce 240 razy wywoływać tej samej strony, wypełniać formularz i klikać submit.
Nie chce edytować mojego pliku dodającego filmy, ciciałbym z poziomu drugiego pliku go wywoływać.

Nie mam pojęcia jak coś takiego zrobić :/
Może jakaś podpowiedz??
wookieb
http://php.net/curl
little_MASTER
Z tego co wyczytałem to cURL służy do ściąganai stron np do pliku,
A ja bym chciał zrobić coś takiego
Kod
               for ($i = 0; $i <= $_POST['powtorzenia']; $i++)
               {
       <no i tutaj nazwa mojej formy i jej submit>
               }


Mogę napisać sobie kodzik w JS

Kod
       <form name="myform" action="moj_plik_dodajacy.php">
       Tytul: <input type='text' name='tytul'>
       <A       href="javascript:       submitform()">Dodaj</A>
       </form>      
   <script language="JavaScript">
       function       submitform()
       {
               document.myform.submit();
       }
       </SCRIPT>


Tylko to coś przeładowuje stronę, a ja muszę podczas jednego kliknięcia guzika wywołać jak jakby ten submit np 12 razy.
wookieb
No słuzy do pobierania. A pobieranie strony to tez wykonywanie skryptu na niej zawartego. Podane przez ciebie kod JS przejdzie do strony wyslania formularza wiec nic ci to nie da. A curlem zrobisz to szybko i sprawnie.
little_MASTER
Ok mogę pobrać stronę, ale jak przed jej pobraniem wysłać do niej coś postem i pobrać ja i tak w pętli.
Wiem głupie pytanie, ale nie mam pojęcia jak to coś użyć sadsmiley02.gif
wookieb
http://php.net/curl_set_opt ...
Kod
$ch = curl_init();

$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');

curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);


Dodaj ejszcze opcje CURLOPT_RETURNTRANSFER i walnij w petle.
little_MASTER
Wielkie dzięki smile.gif
Wszystko działa poprawnie.
A można jakoś nie wyświetlać tej wykonanej strony??
Tzn
Kod
curl_exec($ch);

wyświetla rezultat, a da sięto zrobić bez jej wyświetlania??

Znalazłem na necie coś takiego:
Kod
<?php
$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://www.compzone.org/skrypty/test_post.php');
curl_setopt($c, CURLOPT_POST, 1);//przesylamy metodą post
curl_setopt($c, CURLOPT_POSTFIELDS, 'name=Kodie&position=Head%20developer'); //dane do wyslania
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($c);
curl_close($c);
echo 'OK';
?>


Wywołanie tego kodu nie powinno wyświetlić zawartości, ponieważ zrzuca result do zmiennej $page.

Niestety nadal wyświetla tekst, dla 10 zapytań 10 tych samych fraz sad.gif
wookieb
Poczytaj o opcji CURLOPT_RETURNTRANSFER o której ci pisałem w poprzednim poście.
little_MASTER
Już wszystko śmiga smile.gif
Fajnie by było jeszcze dorobić pasek postępu do skryptu, np przy 1000 zapytań to już będzie trochę trwało, ale wszystko działa już. Na początek wystarczy smile.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.