Utilisation de jQuery pour envoyer des données Excel à l'aide d'AJAX
J'ai la fonction suivante qui est de l'extraction de données à partir d'une base de données. L'appel ajax fonctionne correctement. Comment puis-je envoyer de l'onglet données délimitées dans mes succès de la fonction de l'utilisateur? Réglage de la contect type "application/vnd.ms-excel" n'a pas fonctionné. L'alerte sur le succès montre l'correctement formatée de données.
function SendToExcel() {
$.ajax({
type: "GET",
url: "/Search.aspx",
contentType: "application/vnd.ms-excel",
dataType: "text",
data: "{id: '" + "asdf" + "'}",
success: function(data) {
alert(data);
},
error: function (jqXHR, textStatus, errorThrown) {
alert(jqXHR.responseText);
}});
}
Je ne veux pas afficher les données dans le navigateur--je veux l'envoyer à Excel.
EDIT: j'ai trouvé un moyen de faire ce que je voulais. Au lieu de rediriger les utilisateurs vers une nouvelle page qui pourrait l'inviter à enregistrer/ouvrir un fichier Excel, j'ai ouvert la page dans un iframe masqué. De cette façon, l'utilisateur clique sur un bouton, et ils sont invités à enregistrer/ouvrir un fichier Excel. Pas de redirection de page. Est-il de l'Ajax? Non, mais il résout le problème réel que j'ai eu.
Voici la fonction que je vais appeler sur le bouton cliquez sur:
function SendToExcel() {
var dataString = 'type=excel' +
'&Number=' + $('#txtNumber').val() +
'&Reference=' + $('#txtReference').val()
$("#sltCTPick option").each(function (i) {
dataString = dataString + '&Columns=' + this.value;
});
top.iExcelHelper.location.href = "/Reports/JobSearchResults.aspx?" + dataString;;
}
- Aucune raison pourquoi c'est une mauvaise question? Pourquoi était-ce vers le bas voté?
- il descendit de-voté parce que probablement tout le monde crois que la demande de l'AJAX est une mauvaise approche, mais avec un iframe caché son possible pour obtenir la boîte de dialogue téléchargement de venir. Si vous obtenez des résultats différents avec chaque navigateur. Je me souviens IE cours de l'une de ces questions. mais l'iframe masqué approche fonctionne - je peux le confirmer.
Vous devez vous connecter pour publier un commentaire.
AJAX est... le mauvais choix. Rediriger l'utilisateur vers un serveur de ressources qui va envoyer les données vers le bas avec le bon type MIME, et de laisser le navigateur de savoir quoi faire avec elle.
en HTML j'ai un Formulaire avec des entrées série d'éléments et un bouton qui appelle une fonction JavaScript
onclick="exportExcel();
puis dans le fichier JavaScript:
et enfin un pivot fichier de réponse de l'oms à quelque chose de
Code PHP:
$html est un objet qui manipulent html, et $bd est un objet qui renvoie des données de la Base de données
envoyer votre propre tableau html ou ce que vous voulez.
Car il utilise JavaScript, AJAX est lié par du JavaScript conçu limites, ce qui inclut l'interaction avec d'autres processus sur la machine du client. Dans ce cas, c'est une bonne chose; vous ne voulez pas un site pour être en mesure de charger automatiquement un document Excel avec une macro malveillant en elle.
Si vous souhaitez afficher les données dans le navigateur, vous pouvez utiliser AJAX; sinon, vous aurez envie de donner un lien vers un document Excel et de laisser le navigateur de téléchargement régulier des capacités de traitement de comprendre ce qu'il faut faire.
Il est possible que vous ne voulez pas le faire avec javascript.
Ce que je pense que vous voulez faire est de créer une page de réponse à la mine de type application/csv puis rediriger l'utilisateur vers la page. Je serais probablement faire une fenêtre.open (), car l'utilisateur ne perd pas la page qu'ils sont actuellement sur.