2013-06-12 3 views
0

J'essaie d'envoyer une chaîne qui a été recueillie à partir d'une page Web via PHP, mais je n'ai pas de chance. Beaucoup d'informations sur la création de formulaires jQuery, mais ne peuvent pas en trouver qui sont simplement envoyer une chaîne par courriel.emailing une chaîne recueillie en utilisant jQuery

voici ce que j'ai jusqu'à présent:

$('.questionFive').click(function(){ 
    $.post("mail.php", preSubmit()) 
}); 

// this works well, and returns the string as desired. 
function preSubmit(){ 
    var optionTexts = []; 
    $("section").each(function(){ 
     var h2 = $(this).find("h2").text(); 
     optionTexts.push(h2); 
     $("ol li", this).each(function() { optionTexts.push($(this).text()) }); 
     optionTexts.push("\n"); 
    }); 
    var optionString = optionTexts.toString(); 
    var splitText = optionString.split(","); 
    alert(splitText); 
    return splitText; 
} 

// mail.php file 
<?php 
if (isset($_POST['mailstring']) { 
    $mail = $_POST['mailstring']; 
    mail('[email protected]', 'My Subject', $mail); 
} 
?> 
+1

avez-vous vérifié la forme fonctionne de façon autonome à partir du jQuery - je voudrais tout d'abord éliminer cette possibilité. soumettez le formulaire manuellement avec votre fichier mail.php - cela peut nous indiquer à la fois que le serveur est configuré correctement pour le courrier électronique et que tout est aligné avec votre script de soumission html et php. aussi pouvons-nous s'il vous plaît voir le code HTML? ty – Joe

+0

vaut également la peine de noter qu'il vous manque quelques points-virgules sur les lignes de deux qui causeront des problèmes. spécifiquement la ligne avec votre alerte dans la fonction preSubmit: alert (splitText) et vos appels push de tableau optionText – Joe

+0

points-virgules en JavaScript sont une très bonne idée, mais ils ne sont pas nécessaires. –

Répondre

0

Modifier le retour sur la fonction preSubmit à

return {"mailstring":splitText}; 
+0

en train d'essayer. Merci! – Lukasz

+0

pas de chance avec ces changements :( – Lukasz

2

Vous envoyez une seule chaîne que vos données POST, mais votre script PHP attend une paire clé/valeur. Si vous regardez le jQuery docs pour $.post(), vous verrez que vous devez passer un objet comme paramètre data:

$.post("mail.php", { 
    foo: "bar", 
    abc: true 
}); 
+0

ah, je vois maintenant .. merci, je ne savais pas que je dois retourner un objet – Lukasz

+0

hmm ne semble toujours pas fonctionner. – Lukasz