-2
votes

Ajax continue à rediriger vers la page PHP

J'ai un magasin shopify et je souhaite ajouter un formulaire sur la page du produit Le problème est lorsque je veux soumettre un de l'utilisation de Ajax avec un lien externe, mais je veux rester sur la même page, c'est sur le lien externe < pré> xxx

et ceci est la partie JS EN AJAX xxx

Je veux le page pour rester sans rafraîchissement et obtenir les résultats sur la même page


8 commentaires

Essayez de supprimer action = "http://website.fun/bianca/doc.php" sur votre formulaire HTML.


mais veulent gérer la forme sur cette page qui existe sur une URL externe


Vous pouvez définir l'URL AJAX sur http://website.fun/bianca/doc.php en tant que chaîne.


@AbDessamadben Avez-vous essayé d'utiliser Onclick = "retour false" sur le bouton d'envoi


oui j'ai essayé et le même problème


Pourquoi ne pas mettre votre code dans une fonction SummerForm () {// Code renvoie false;} et sur onclick = "SoumettreForm (); renvoyer false;"


Il y a une erreur dans votre code JS. Ajouter ) juste après } à la ligne }. Terminé (réponse (réponse) { et supprimer un ) rangée )). échouer (fonction (données) {


J'ai corrigé les erreurs JS mais j'ai toujours le même problème


3 Réponses :


1
votes

Essayez ceci,

$( "#your_form_id" ).submit(function(event) {
    event.preventDefault();
    $.ajax({
            beforeSend: function () {
                //something to do before ajax call
            },
            complete: function () {
               //something to do after ajax call
            },
            type:"POST",
            data:$(this).serialize(),
            url:"<?php echo $url;?>",
            success:function(data){
                $('#divId').html(data); // id where you want to retrive and show your data
            }
    });

});


0 commentaires

0
votes

essayez ceci strud>

changer le formulaire comme celui-ci. p> xxx pré>

et modifier la fonction comme ceci, P>

  function submitForm(){

  var formData = $('#fastform').serialize();
  $.ajax({
      type: 'POST',
      url: $('#fastform').attr('action'),
      data: formData
  }.done(function(response) {
      // Make sure that the formMessages div has the 'success' class.
      $(formMessages).removeClass('error');
      $(formMessages).addClass('success');

      // Set the message text.
      $(formMessages).text("votre commande et bien traiter");

      // Clear the form.
      $('#name').val('');
      $('#email').val('');
      $('#message').val('');
  })).fail(function(data) {
      // Make sure that the formMessages div has the 'error' class.
      $(formMessages).removeClass('success');
      $(formMessages).addClass('error');

      // Set the message text.
      if (data.responseText !== '') {
          $(formMessages).text(data.responseText);
      } else {
          $(formMessages).text('Oops! il\'ya un problem');
      }
  });

  return false;

}


1 commentaires

Merci pour la réponse mais toujours le même problème de la manière dont je travaille sur le site Web Shopify et je modifie la page du produit, mais j'ai vu beaucoup de gens ont fait cela sur les magasins



0
votes

Essayez ce code:

$(function (){ 
 $('form').bind('submit', function () { 
       $.ajax({ type: 'post', 
        url: 'libs/send.php', 
        data: new FormData($('form')[0]),
        cache: false, 
        contentType: false,
        processData: false,
        success: function () { 
      alert("Data has been successfully inserted"); 
   } 
    }); 
   return false; 
 }); 
});


2 commentaires

même problème, je pense que quelque chose ne va pas avec Shopify J'envoie la demande d'Ajax et il envoie sans l'utiliser


OK, pouvez-vous essayer ce code: $ (document) .Ready (fonction (fonction () {$ ("# addcate"). Soumettre (fonction (e) {var données1 = $ ("# données1 '). Val (); Var données = $ ('# données'). Val (); $ .ajax ({URL: "libs / send.php", méthode: "post", données: {data1: data1, données: données}, succès: fonction (réponse) {alerte (réponse);}});});});