2016-09-19 4 views
2

Ich habe eine AJAX-Funktion, die Daten aus der Datenbank mit einem einfachen select * ... zu einem div lädt. Die Funktion funktioniert ohne submit, aber wenn ich ein Formular verwende, funktioniert es nicht und #itemContainer ist leer. Fehle ich etwas? Ich habe sogar versucht:jQuery .append funktioniert nicht. .submit

$(document).ready(function() { 
    $("#myForm").submit(function() { 

aber auch

Mein Code hat nicht funktioniert:

<script id="source" language="javascript" type="text/javascript"> 
$("#myForm").submit(function() { 
    $.ajax({ 
    url: 'models/fetchUsers.php', //the script to call to get data 
    dataType: 'json', //data format 
    success: function(data) //on recieve of reply 
     { 
     $.each($(data), function(key, value) { 
      $('#itemContainer').append(value.user_id); 
     }); 
     } 
    }); 
}); 
</script> 
+1

Es ist, weil Seite wird auf 'form.submit() neu geladen werden'. Fügen Sie 'return false' hinzu, um ein erneutes Laden zu vermeiden. – Pugazh

+0

müssen Sie Ihre Formulardaten in die Datenbank einfügen, indem Sie das Ereignis on click anstelle des Ereignisses form submit verwenden. Denn wenn Sie Ihr Formular absenden, wird Ihre Seite neu geladen/aktualisiert. also funktioniert Ihre foreach-Schleife nicht gleich. –

+0

Danke @Pugazh, du könntest eine Antwort posten, um sie zu bewerten. –

Antwort

6

Sie nicht Formular-Vorlage Veranstaltung absagen haben.

hinzufügen preventDefault() in Ihrem einreichen

Gefällt Ihnen dieses

$("#myForm").submit(function(event) { 
    $.ajax({ 
    url: 'models/fetchUsers.php', //the script to call to get data 
    dataType: 'json', //data format 
    success: function(data) //on recieve of reply 
     { 
     $.each($(data), function(key, value) { 
      $('#itemContainer').append(value.user_id); 
     }); 
     } 
    }); 
    event.preventDefault(); 
}); 

aktualisieren:

event.preventDefault() ist depricated.

versuchen return false;

Gefällt Ihnen dieses

$("#myForm").submit(function(event) { 
    $.ajax({ 
    url: 'models/fetchUsers.php', //the script to call to get data 
    dataType: 'json', //data format 
    success: function(data) //on recieve of reply 
     { 
     $.each($(data), function(key, value) { 
      $('#itemContainer').append(value.user_id); 
     }); 
     } 
    }); 
    return false; 
}); 
+0

Danke, es funktioniert super. –

+2

preventDefault ist bereinigt, Sie können stattdessen return false verwenden. –

+0

Danke für die Info @Pratik –

0

Es ist zu verwenden, da Seite auf Formular-Vorlage neu geladen werden.

Behandeln Sie das Sendeereignis und fügen Sie return false hinzu.

<script id="source" language="javascript" type="text/javascript"> 
 
    $("#myForm").submit(function() { 
 
    submitForm(); 
 
    return false; 
 
    }); 
 

 
    function submitForm() { 
 
    $.ajax({ 
 
     url: 'models/fetchUsers.php', //the script to call to get data 
 
     dataType: 'json', //data format 
 
     success: function(data) //on recieve of reply 
 
     { 
 
      $.each($(data), function(key, value) { 
 
      $('#itemContainer').append(value.user_id); 
 
      }); 
 
     } 
 
    }); 
 

 
    }; 
 
</script>

Verwandte Themen