8768 sujets

Développement web côté serveur, CMS

Bonjour

ça fait deux jours que j'essaie de récupérer une valeur json envoyé par mon php sans succès. Pourtant mon Php envoi bien le message mail mais rien de retour.

Voici mon code HTML, Form, Ajax

<div class="Adduser">
 <div class="modal-content">
  <div class="modal-header">
   <button type="button" class="close" data-dismiss="modal" onclick="VideIt()"; >&times;</button>
   <center> <h4 class="modal-title">Creation de compte</h4> </center>
  </div>
  <form class="form-horizontal" action="" method="post"  id="adduser-form">
  <div class="modal-header">
   <div class="form-group">
    <label class="col-md-4 control-label">E-Mail</label>
     <div class="col-md-6  inputGroupContainer">
      <div class="input-group">
       <span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span>
         <input name="email" id="email" placeholder="E-Mail Address" class="form-control"  type="text">
      </div>
     </div>
   </div>
        <div class="form-group">
        <label class="col-md-4 control-label"></label>
        <div class="col-md-4">
          <button type="submit" class="btn btn-warning" >Send <span class="glyphicon glyphicon-send"></span></button>
        </div>
      </div>
  </form>
</div>
<div class="modal-footer">
  <span style="float:left"><a href="#adduser" onclick="AddUser();">Devenir membre</a></span>
  <span style="float:right"><a href="#forgotpass" onclick="ForgotPass();">Password oublié</a></span>
 </div>
</div>
</div>
 
<script type="text/javascript">
 
$(function()
{
   $(document).ready(function()
   {
     $('#adduser-form').bootstrapValidator({
        // To use feedback icons, ensure that you use Bootstrap v3.1.0 or later
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
             email: {
                validators: {
                    notEmpty: {   message: 'Please supply your email address'       },
                    emailAddress: {    message: 'Please supply a valid email address'     }
                }
            },
         }
        })
     });
  
     $('#adduser-form').on('submit', function (e)
     {
        if (!e.isDefaultPrevented())
        {
            var url = "/Root/Fr/Html/SendMsg2User.php";
            $.ajax({
                type: "POST",
                url: url,
                data: $(this).serialize(),
                success: function (data)
                {
                    var messageAlert = 'alert-' + data.type;
                    var messageText = data.message;
                    msg="Vous allez recevoir un message";
                    $('#adduser-form')[0].reset();
                    $('#adduser').modal('hide');
                    if (messageAlert && messageText)
                    {
                    alert("ici"):
                    }
                }
            });
            return false;
        }
     })
});
 
function VideIt()
{
        document.getElementById('email').value="Entrez votre email";
        $('#adduser-form').data('bootstrapValidator').resetForm();
}
</script>


Et voici la fin de mon Php

try
{
        $mail->AltBody = "This is the body in plain text for non-HTML mail clients";
        $mail->Send();
        $responseArray = array('type' => 'success', 'message' => $okMessage);
}
 
catch (\Exception $e)
{
    $responseArray = array('type' => 'danger', 'message' => $errorMessage);
}
 
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
    $encoded = json_encode($responseArray);
    header('Content-Type: application/json');
    echo $encoded;
}
else
{
    echo $responseArray['message'];
}


Merci pour vos aides
salut,

est ce qu'il y a des erreurs dans la console javascript ? (sur chrome et firefox => F12, c'est dans le bas et dans l'onglet console).
est ce qu'en utilisant directement l'url du fichier dans un navigateur cela fonctionne ?
d'après le code http://tonsite//Root/Fr/Html/SendMsg2User.php
si ce n'est pas le cas c'est peut être que l'url n'est pas bonne.
j'ai comme un doute sur l'url indiquée pour la requête serveur, est ce qu'il n'y aurai pas une confusion entre chemin système et chemin web ?

D'après le code php il doit toujours y avoir une réponse donc l'utilisation dans le navigateur doit retourner quelque chose.

Dans le code javascript il faudrait traiter le cas d'erreur (fonction error).
ps : cela pourrait être pas mal de sortir le js dans un fichier à part Smiley cligne

@+