2013-05-08 7 views
5

To jest mój kod i chcę przekazać zmienną javascript z ajax do php po kliknięciu przycisku submit, a wynik nie pokazuje zmiennej var_data z javascript kod jest nieprawidłowy? Jest edit kolejność jeden przed wszystkim pomaga miPrzekaż zmienną javascript do php z ajaxem, a wynik niczego nie pokazuje

<!DOCTYPE html> 
<html> 
<head> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 
<script> 
     $(document).ready(function() { 
      $('#sub').click(function() { 
       var var_data = "Hello World"; 
       $.ajax({ 
        url: 'http://localhost/ajax/PassVariable.php', 
        type: 'GET', 
        data: { var_PHP_data: var_data }, 
        success: function(data) { 
         // do something; 

        } 
       }); 
      }); 
     }); 
</script> 

</head> 
<body> 

<input type="submit" value="Submit" id="sub"/> 

<?php 
    $test = $_GET['var_PHP_data']; 
    echo $test; 
?> 
</body> 
</html> 

i jest to kod źródłowy teraz

<?php 
    if (isset($_GET['var_PHP_data'])) { 
     echo $_GET['var_PHP_data']; 
    } else { 
    ?> 
    <!DOCTYPE html> 
    <html> 
     <head> 
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
      <script src="http://malsup.github.com/jquery.form.js"></script> 
     <script> 
      $(document).ready(function() { 
       $('#sub').click(function() { 
        var var_data = "Hello World"; 
        $.ajax({ 
         url: 'http://localhost/test.php', 
         type: 'GET', 
          data: { var_PHP_data: var_data }, 
          success: function(data) { 
           // do something; 
          $('#result').html(data) 
          } 
         }); 
        }); 
       }); 
     </script> 
     </head> 
     <body> 
     <input type="submit" value="Submit" id="sub"/> 
     <div id="result"> 
     </body> 
    </html> 
    <?php } ?> 

stwierdzenie to if (isset ($ _ GET [ 'var_PHP_data'])) Wyjście fałszywy, a następnie pokaz Hello World Co powinienem zrobić dla isset ($ _ GET ['var_PHP_data']) jest prawdziwe?

+0

Unikaj używania słów kluczowych zdefiniowanych w Systemie dla nazw zmiennych – dreamweiver

+0

gdzie jest twój znacznik formularza? używaj jak tego '

'method =' post '> 'i zamknij swój przycisk przesyłania wewnątrz niego. – dreamweiver

+0

Działanie może być" ", jeśli formularz jest wysyłany do samego siebie. Nie mogę odtworzyć twojego błędu, widzę, że '$ _GET ['var_PHP_data']' pokazuje 'Hello World'. –

Odpowiedz

3

Twoje rozwiązanie ma problemy z PHP: nie sprawdzić, czy istnieją dane, a także, nie robisz nic z wynikiem. Zmodyfikowałem skrypt, wykonując następujące czynności:

  1. Sprawdź, czy ustawiono var_PHP_data var (w PHP, na serwerze).
  2. Jeśli tak, po prostu wyślij pustą odpowiedź tekstową zawierającą te dane.
  3. Jeśli nie, następnie narysuj formularz i całą resztę.
  4. W formularzu utworzyłem element div #result.
  5. Odpowiedzi Ajax będą wyświetlane w tym dziale.

Upewnij się również, że host skryptu na localhost i że nazywa się to test.php. Aby upewnić się, że jest odporny, możesz zmienić adres URL Ajax na <?php echo $_SERVER['PHP_SELF'];?>, aby upewnić się, że trafisz w odpowiedni skrypt.

 
<?php 
    if (isset($_GET['var_PHP_data'])) { 
     echo $_GET['var_PHP_data']; 
    } else { 
    ?> 
    <!DOCTYPE html> 
    <html> 
     <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"> 
     <script> 
      $(document).ready(function() { 
       $('#sub').click(function() { 
        var var_data = "Hello World"; 
        $.ajax({ 
         url: 'http://localhost/test.php', 
         type: 'GET', 
         data: { var_PHP_data: var_data }, 
         success: function(data) { 
          // do something; 
          $('#result').html(data) 
         } 
        }); 
       }); 
      }); 
     </script> 
     </head> 
     <body> 
     <input type="submit" value="Submit" id="sub"/> 
     <div id="result"> 
     </body> 
    </html> 
    <?php } ?> 
+0

Staram się śledzić twój kod, gdy klikam submit to pokazuje tę samą stronę, a ajax nie odpowiada w tym dziale. – GoT

+0

Ok i zmień i pokaż wynik Hello World – GoT

+0

co należy zrobić dla var_PHP_data var jest ustawiony? – GoT

1

Spróbuj umieścić swoje dane wejściowe w formularzu i dołączyć wywołanie ajax do formularza zdarzenia onsubmit. Sposób, w jaki to się dzieje, ma miejsce po kliknięciu w polu, w którym to przypadku przesyła się, zanim będzie można napisać coś naprawdę.

1
$(document).ready(function() { 
     $('#brn').click(function() { 
      var var_data = "Hello World"; 
      alert("click works"); 
      $.ajax({ 
       url: 'http://localhost/ajax/PassVariable.php', 
       type: 'GET', 
       data: { x: var_data }, 
       success: function(data) { 
        alert(data); 

       } 
      }); 
     }); 
    }); 

go zmienić na tym kodem

następnie w PassVariable.php umieścić

przycisk make

<input type="button" id="btn" value="click me" /> 

powinno działać, ponieważ jest to bardzo prosty przykład. Jeśli to nie zadziała, sprawdź konsolę, jeśli są jakieś błędy JavaScript i usuń je.

+0

(dane) pokaż mój kod źródłowy – GoT

2

Wypróbuj jQuery Form to pomoże rozwiązać wiele problemów.

Dla was pytanie: spróbuj URL bez nazwy domeny, dodaj tagi „form”, zmiana zdarzenie kliknij, aby złożyć, dodać typ danych

+0

I zaktualizuj jQuery do nowego wersja (1.9 lub 2.0 dla nowych przeglądarek) – Vitmais

+0

Dziękuję, że twój komentarz jest pomocny. – GoT

2

jakie są treści PassVariable.php? jeśli jest taka sama, gdzie mają jQuery bit przyzwyczajenie coz praca php będzie ponownie wydrukować wszystkie strony, jeśli plik jest inna spróbować

success: function(data) { 
        alert('databack = '+ data); 

       } 
+0

The alert show databack = Hello World – GoT

Powiązane problemy