Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]Przesyłanie danych formularza poprzez alert/confirm
Forum PHP.pl > Forum > Przedszkole
maksik
Witam

mam taki o to najprostszy formularz
  1. <form action="index.php?c=mojezlecenia" method="post">
  2.  
  3. <input type="hidden" name="dlakogo" value="'.$query['User'].'" />
  4. <input type="hidden" name="price" value="'.$query['price'].'" />
  5. <input type="submit" value="Odrzucam"></form>


dotyczy od odrzucania zamówień, jest jakaś możliwość żeby po kliknięciu submit otworzył się alert z type text i można bylo tam wpisać "powód odrzucenia" który by dalej poszedł z formularzem?
Sephirus
To Cię nakieruje smile.gif

  1. <form action="index.php?c=mojezlecenia" method="post" onsubmit="return podajPowod();">
  2. <!-- tutaj pola formularza -->
  3. <input type="hidden" name="powod" id="powod"/>
  4. </form>
  5. <script type="text/javascript">
  6. function podajPowod() {
  7. var powod = prompt("Podaj powód odrzucenia:");
  8. document.getElementById('powod').value = powod;
  9. return true;
  10. }
maksik
'.$powod.' tą funkcją powinno wywować napisany powód?
!*!
To nie funkcja a zmienna. Zmienna z formularza np. pola które określa.

Edycja:
http://pl.wikibooks.org/wiki/PHP/Zmienne_i_tablice#Zmienne

A przykład wyżej podaje Ci to w JS a nie PHP.
maksik
wygląda to tak, ale pole w bazie jest puste, gdzie tu może być błąd?

  1.  
  2.  
  3. elseif ($_GET['c']=='mojezlecenia')
  4. {
  5.  
  6. if ($_POST['NOzad'])
  7.  
  8. {
  9. addPktZad($_POST['dla_kogo'],$_POST['price'],$_POST['powod']);
  10.  
  11. }



  1. <form action="index.php?p=zadania&c=mojezlecenia" method="post" onsubmit="return podajPowod();">
  2.  
  3. <input type="hidden" name="dlakogo" value="'.$query['User'].'" />
  4. <input type="hidden" name="price" value="'.$query['price'].'" />
  5. <input type="hidden" name="powod" id="powod"/>
  6. <input type="submit" value="Odrzucam"></form>
  7.  
  8.  
  9. <script type="text/javascript">
  10. function podajPowod() {
  11. var powod = prompt("Podaj powód odrzucenia:");
  12. document.getElementById(\'powod\').value = powod;
  13. return true;
  14. }
  15. </script>




  1. function addPktZad($user, $idzadania, $price, $powod)
  2. {
  3.  
  4. $query = mysql_query("UPDATE `Zlecenia` SET `Powod`='".$powod."' WHERE `Id`='".$idzadania."' AND `User`='".$user."'");
  5.  
  6.  
  7. }




!*!
Wysyłasz 3 wartości, a funkcja potrzebuje 4 (powód jest 4).
maksik
Wysyłam 4 i odbieram 4 tylko usunąłem połowe kodu, aby nie zajmował całej strony tylko przejrzyście był widoczny wink.gif

$_POST['powod'] - nie wiem czy w tym kodzie dobrze jest napisane to bo wydaje się, że zawartość mimo uzupełnienia pola w alercie jest pusta



  1. <input type="hidden" name="powod" id="powod"/>

Powinno być tutaj jeszcze coś w value=" ?
!*!
A co zwraca
  1. var_dump($_POST['powod']);
? Jak jest ok, to wina leży po stornie zapytania, a raczej formy w jakiej przekazujesz dane.
maksik
pojawia się string(0) ""
luke18dg
A dlaczego nie sprawdzisz poprzez print_r co dostajesz z tablicy $_POST?
If(!(empty($_POST))){print_r($_POST); exit();}
!*!
luke18dg Twój "kod" jest bez sensu.

maksik - skoro post nic nie zawiera to znaczy że go w ogóle nie wysyłasz, lub robisz to źle, pokaż całość.
toaspzoo
Javascript nie przypisze do ukrytego pola żadnej wartości

Poza tym, u mnie onsubmit nie działa.
maksik
  1. elseif ($_GET['c']=='mojezlecenia')
  2. {
  3.  
  4.  
  5. if ($_POST['mojezlecenia'])
  6. {
  7.  
  8. if ($_POST['OKzad'])
  9. {
  10. addPktUser($_POST['dlakogo'],$_POST['price'],$_POST['mojezlecenia']);
  11.  
  12. }
  13.  
  14. if ($_POST['NOzad'])
  15.  
  16. {
  17. addPktZad($_POST['dlakogo'],$_POST['mojezlecenia'],$_POST['price'],$_POST['powod']);
  18.  
  19. }
  20.  


  1.  
  2. <form action="index.php?p=zadania&c=mojezlecenia" method="post" onsubmit="return podajPowod();">
  3. <input type="hidden" name="NOzad" value="TRUE" />
  4. <input type="hidden" name="dlakogo" value="'.$query['User'].'" />
  5. <input type="hidden" name="price" value="'.$_POST['price'].'" />
  6. <input type="hidden" name="mojezlecenia" value="'.$_POST['mojezlecenia'].'" />
  7.  
  8. <input type="hidden" name="powod" id="powod"/>
  9. <input type="submit" class="button1" value="Odrzucam"></form>
  10.  
  11.  
  12. <script type="text/javascript">
  13. function podajPowod() {
  14. var powod = prompt("Podaj powód odrzucenia:");
  15. document.getElementById(\'powod\').value = powod;
  16. return true;
  17. }
  18. </script>



  1. function addPktZad($user, $idzadania, $price, $powod)
  2. {
  3.  
  4. if (mysql_num_rows($query1) <> 0)
  5. {
  6.  
  7.  
  8. $query = mysql_query("UPDATE `Zlecenia` SET `Accept`='3' WHERE `Id_Zadania`='".$idzadania."' AND `User`='".$user."'");
  9. $query = mysql_query("UPDATE `Zlecenia` SET `Powod`='".$powod."' WHERE `Id_Zadania`='".$idzadania."' AND `User`='".$user."'");
  10.  
  11.  
  12. }
  13.  
  14. }
toaspzoo
http://locked.pl/fphp.php
http://jsfiddle.net/DnJ4D/



  1. <pre>
  2. <? var_dump($_POST['powod']); ?>
  3. </pre>
  4.  
  5. <form action="fphp.php?p=zadania&c=mojezlecenia" method="post" id="forma">
  6.  
  7. <input type="hidden" name="dlakogo" value="'.$query['User'].'" />
  8. <input type="hidden" name="price" value="'.$query['price'].'" />
  9. <input type="hidden" name="powod" id="powod"/>
  10. <input type="submit" value="Odrzucam"></form>
  11.  
  12. <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  13. <script type="text/javascript">
  14.  
  15.  
  16. $("#forma").submit(function(){
  17.  
  18. var pr = prompt("Podaj powód");
  19. $("#powod").val(pr);
  20. alert("powód: "+$("#powod").val());
  21.  
  22. });
  23. </script>


częściowy kod
maksik
nie pojawia się u mnie alert po zastosowaniu tego kodu
toaspzoo
Daj logi z konsoli przeglądarki

Że się tak spytam profilaktycznie, podłączenie do internetu masz na tej maszynie ?

Daj cały kod
maksik
akcja pomija krok z js czyli nie wyświetla się alert, być może kod

  1. <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>


może gryzie się z innymi kodami js? bo pierwszy kod js który podał Sephirius działa, ale nie dodaje do bazy wpisanej w alercie zawartości
luke18dg
Cytat(!*! @ 19.02.2013, 12:33:04 ) *
luke18dg Twój "kod" jest bez sensu.


print_r($_POST); Wypiszę całą tablicę $_POST, a do mojej wypowiedzi autor nie wiedział, dlaczego do bazy nic nie jest dodawane. Więc proszę pierw, nie krytykuj pochopnie.
maksik
jednak działa. Dzięki wielkie wink.gif
toaspzoo
http://jsfiddle.net/DnJ4D/1/
[JAVASCRIPT] pobierz, plaintext
  1.  
  2.  
  3.  
  4. $("#forma").submit(function(event){
  5.  
  6. var pr = prompt("Podaj powód");
  7. $("#powod").val(pr);
  8. if($.trim(pr).length==0)
  9. event.preventDefault();
  10. else
  11. alert("powód: "+$("#powod").val());
  12.  
  13. });
[JAVASCRIPT] pobierz, plaintext


Tutaj masz, że jak się kliknie anuluj lub nic się nie wpisze, to nie wysyła formularza.
maksik
a czy jest możliwość, aby w tym samym oknie była do wyboru jedna z możliwości "positive" lub "negative" poprzez input type radio?
toaspzoo
google -> js checkbox = http://jsfiddle.net/DotNetScott/ZKghP/
maksik
jak można połączyć to z kodem tutaj
http://jsfiddle.net/DnJ4D/1/ ?

aby akcje z input type wykonywać przyciskami "POSITIVE" "NEGATIVE" "ANULUJ" lub po prostu OK i ANULUJ input type oraz dwie możliwości wyboru poprzez type=radio

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.