Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: formularz - problem z przekazaniem zmiennych
Forum PHP.pl > Forum > XML, AJAX
martinez06
Witam
Mam problem z formularzem i użyciem javascript w nim. W formularzu z bazy pobierane są informacje i wyświetlane w selekcie. Chciałbym aby po wyborze i kliknięciu przycisku zanim wywołany będzie skrypt do usunięcia danych z bazy pojawiła się informacja czy napewno chcemy usunąć dane. W skrypcie pojawia się zapytanie, jak odpowiem że chce usunąć to strona się przeładowuje ale żadne informacje z formularza nie są przesyłane. Gdzie jest błąd?

Z góry dziękuje za pomoc.
  1. <?php
  2. <script type="text/javascript">
  3. function przejdz() {
  4. var form = document.getElementById("formularz");
  5. jConfirm('Can you confirm this?', 'Confirmation Dialog', function(r) {
  6.                    if(r)
  7.                        {    
  8.                        form.submit();
  9.                        }
  10.                    });
  11.  
  12. return false;
  13. }
  14. </script>
  15. ?>


  1. <?php
  2. echo'<form id="formularz" onsubmit="return przejdz();" method="post" action="">';
  3. echo"<select name='id'>";
  4. while ($row = db_fetch_object($result))
  5.        {
  6.        $id=$row->id;
  7.    $nazwa=$row->nazwa;
  8.  
  9.    echo'<option value="'.$id.'">'.$nazwa.'</option>';
  10.              }
  11. echo"</select>";
  12.  
  13.  
  14. echo '<input type="submit" name="usun" value="Usuń">';
  15. echo'</form>';
  16. ?>
erix
Czym sypie konsola błędów?
martinez06
Tylko jedno ostrzeżenie:
Ostrzeżenie: Nieznana własność "border-radius". Deklaracja opuszczona.
Plik źródłowy: http://localhost/strona/jquery-alerts/jquery.alerts.css
Wiersz: 11
erix
A dla JS nic?
martinez06
Nie, to jest jedyna informacja jaka pojawia się w konsoli błędów
erix
To może łaskawie je podaj? Wszystko, co dotyczy JS...
martinez06
Może źle to napisałem, jedyny błąd jaki pojawia się w konsoli błędów to ostrzeżenie odn. css, które wcześniej wpisałem, nie ma żadnych ostrzeżeń ani błędów związanych z JS.
erix
A funkcja przejdz() w ogóle się wykonuje...? Wstaw po drodze jakiegoś alerta i prześledź.
nexis
Za pomocą jQuery zrobiłbym to tak:

Kod
$(document).ready(function(){
   $("#usun").click(function(){
      return confirm("Can you confirm this?");  
   });
});


musisz jedynie dodać id="usun" w przycisku.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">    
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">    
  4.    <head>        
  5.        <meta http-equiv="content-type" content="text/html; charset=utf-8" />        
  6.        <title>formularz - problem z przekazaniem zmiennych</title>        
  7.        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>        
  8.        <script type="text/javascript">
  9.            $(document).ready(function(){
  10.               $("#usun").click(function(){
  11.                  return confirm("Can you confirm this?");  
  12.               });
  13.            });
  14.        </script>    
  15.    </head>    
  16.    <body>      
  17.        <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
  18.            <select name="id">
  19.            <?php
  20.            $query  = 'Tutaj twoje zapytanie';
  21.            $query  = mysql_query($query);
  22.            $result = mysql_fetch_assoc($query);
  23.            ?>                      
  24.            <?php while($row = db_fetch_object($result)): ?>
  25.                <?= sprintf('<option value="%s">%s</option>', $row->id, $row->nazwa) ?>
  26.            <?php endwhile; ?>          
  27.            <input type="submit" id="usun" value="Usuń" />      
  28.        </form>    
  29.    </body>
  30. </html>
erix
Man, nie return...

I lepiej dla <form />, bo ktoś może przecież nacisnąć na formularzu jeden z większych klawiszy...

Kod
$(document).ready(function(){
    $('form').submit(function(e){
        if(!confirm('asdasdasd')){
            e.preventDefault();
        }
    });
});
martinez06
Zastosowałem się do rady nexisa i wszystko działa, wielkie dzięki
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.