2017-06-24 5 views
1

Ich habe eine HTML-Seite, über die ich Daten an PHP durch Ajax senden, aber der Code funktioniert nicht. HTMLAjax PHP Java Script Integration funktioniert nicht

<form name='tip' method='post' action=''> 
     Tip somebody: <input name="tip_email" id=tip_email type="text" size="30" /> 
     <input type="submit" value="Skicka Tips" /> 
     <input type="hidden" id="ad_id" name="ad_id" /> 
</form> 
<script> 
     $('#submit').click(function() { 
       event.preventDefault(); 
       $.ajax({ 
         url: insertdata.php, 
         type: 'POST', 
         data: { 
           tip_email: $('#tip_email'), 
           ad_id: $('#ad_id') 
         }, 
         success: function(res) { 
           if (res == 'successful') { 
             alert("successful"); 
           } else { 
             alert("failed"); 
           } 
         }, 
         error: function() { 
           $('#status').html('Failed').slideDown(); 
         } 
       }); 
     }); 
</script> 

PHP

<?php 
echo "successful" 
?> 

Ich habe verschiedene Optionen auf Stackoverflow versucht, aber keiner von ihnen arbeitet.

enter image description here

Uncaught ReferenceError: $ is not defined

$('#submit').click(function() 

noch nicht funktioniert Aber wenn ich das Skript bin auch zu codieren, wird in Endlosschleife und werfen Fehler als „Uncaught Auslöser Range gehen: Maximale Call-Stack-Größe überschritten " Ich habe drei Änderungen in meinem bestehenden Code vorgenommen. 1) Skript hinzugefügt src Ich habe auch versucht, andere ähnliche Skripte hinzuzufügen, aber alle zeigen den gleichen Fehler , was bedeutet, dass es ein Problem mit dem Code selbst gibt. 2) Event zur Anweisung hinzugefügt $ ('# submit'). Click (function (event) 3) plaziert php in einfache Anführungszeichen url: 'insertdata.php'.

+1

Sie haben jQuery nicht enthalten (oder eine Bibliothek mit einer '.ajax()' Methode, die '$' als Abkürzung verwendet). Außerdem ist der Selektor falsch, da es kein Element mit 'id = "submit" ' – Andreas

+0

gibt. Es sieht so aus, als hätten Sie einen Verweis auf die jquery Quelle vergessen. – Christiaan

Antwort

0

Fügen Sie zuerst jquery hinzu, bevor Sie Ihr Skript starten. Es ist nicht geladen, deshalb ist $ nicht definiert Fehler kam.

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

Und Sie passieren nicht das Ereignisobjekt hier

$('#submit').click(function() {}) 

Fügen Sie es in Ihrem Code

$('#submit').click(function(event) {}); 

Oder entfernen Sie den Submit-Typ aus Ihrer Eingabe-Taste als

<input type="button" value="Skicka Tips" /> 
+0

@Andreas Ich habe meine Antwort aktualisiert, aber ich habe die letzte Zeile nicht gesehen –

0

Zunächst einmal gibt es n o event bestanden in Ihrem

$('#submit').click(function(){}) 

Sie müssten das ändern

$('#submit').click(function(event) {}) 

zu arbeiten.

Zweitens Ihre

<input type="submit" value="Skicka Tips" /> 

hat keine id so kann jQuery es die # Kennung nicht gefunden werden.

entweder Sie müssen, dass

<input type="submit" id="submit" value="Skicka Tips" /> 

ändern oder das onsubmit Ereignis mit dem Formular.

1

bitte tun Korrektur im Code als

1.) add script to below your form close - <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

2.) add id in submit button - <input type="submit" id="submit" value="Skicka Tips" /> 
+0

Aber Wenn ich das obige Skript in den Code einfüge, geht es in Endlosschleife und wirft Fehler wie "Uncaught RangeError: Maximale Call-Stack-Größe überschritten" Ich habe drei Änderungen in meinem vorhandenen Code vorgenommen. 1) Hinzugefügt: Ich habe auch versucht, andere ähnliche Skripte hinzuzufügen, aber alle zeigen den gleichen Fehler -> -> –

Verwandte Themen