jQuery $.post de mise à jour ne fonctionne pas sous IE
Je ne peux pas obtenir cette mise à jour script fonctionne sous IE. Fonctionne très bien dans tous les autres navigateur. IE me dit que la mise à jour a été effectuée. Cependant, il n'était pas. Je n'ai pas plus de cheveux à gauche pour sortir..grr. BTW j'ai essayé $.ajax
et $.get
trop..toujours pas de chance. Je pense qu'il peut avoir quelque chose à voir avec la live
cliquez sur gestionnaire. Je ne sais pas...j'ai tout essayé..(mettre en-têtes pour les no-cache, de la fixation d'un nombre aléatoire à la fin de mon url, string)..rien fricken fonctionne...fustigé IE.
C'est le $('.save').live('click')
fonction, je suis en utilisant:
$(".save").live("click", function(){
$.post("update.php", { cache : false, saveID : saveIt.value, saveMo : saveMonth, saveYr : saveYear, saveCtg : saveCt, saveThg : saveTh },
function(data){
if(data.success) {
$(textareaThoughts).hide();
$(saveIt).parents(".dirRowOne").find(".cancel").hide();
$(saveIt).parents(".dirRowOne").find(".edit, .del").show();
$(saveIt).hide();
$("#dirConsole").html(data.message);
} else if(data.error) {
}
}, "json");
return false;
});
Voici l'update.php
<?php
if($_POST) {
$data['id'] = $db->escape_value($_POST['saveID']);
$data['months'] = trim($db->escape_value($_POST['saveMo']));
$data['years'] = trim($db->escape_value($_POST['saveYr']));
$data['cottages'] = trim($db->escape_value($_POST['saveCtg']));
$data['thoughts'] = trim(htmlentities($db->escape_value($_POST['saveThg'])));
$id = $data['id'];
$m = $data['months'];
$y = $data['years'];
$c = $data['cottages'];
$t = $data['thoughts'];
$query = "UPDATE //tablename SET month = '{$m}', year = '{$y}', cottage = '{$c}', thoughts = '{$t}' WHERE dirID = '{$id}'";
$result = $db->query($query);
if($result) {
$data['success'] = true;
$data['message'] = "Update Successful!";
} else {
$data['error'] = true;
}
echo json_encode($data);
}
?>
C'est la réponse JSON:
{"id":"360","months":"June","years":"1990","cottages":"Cedar","thoughts":"Hello","success":true,"message":"Update Successful!"}
Il n'effectue pas la mise à jour dans IE7. Mais il le fait dans Firefox, Opéra, Chrome et Safari.
N'avez-vous pas juste amour faire les choses dans IE?
Balle => non, je n'ai pas 🙂 je veux dire allez, assez est assez déjà. Juste mourir IE..die, die, die!!!!!!
OriginalL'auteur Scott | 2009-10-11
Vous devez vous connecter pour publier un commentaire.
Je suis d'accord avec la réponse ci-dessus. J'ai vu IE flocons avec des requêtes AJAX, à la fois GET et POST, lorsqu'un cache-busting chaîne n'est pas utilisée. Ajoutez simplement un hasard de contournement du cache chaîne de votre URL, comme ceci:
et il devrait commencer à travailler dans IE.
OriginalL'auteur Aditya
Enfin!!!
J'ai résolu mon problème qui est en raison de "l'origine de la politique" et juste soulever dans IE!:
Je viens de changer le URL paramètre à partir de : 'http://mysite.com/api/' à '/api/'
et ça marche!!!!!
espère que ça aidera certains d'entre vous!
OriginalL'auteur QHNPROF
Avez-vous essayé de supprimer le "return false". Cela semble d'annuler l'événement onclick dans IE.
Nan..pas encore de workie.
Je vois. Quand vous avez dit que IE vous dit qu'il fait la mise à jour, ça veut dire que IE exécuté les lignes dans les données.le succès de bloc? Et que le problème est que les données ont été mises à jour n'était pas mis à jour dans votre base de données? Si oui, peut-être il ya un problème avec IE traite de ce que vous envoyer les paramètres POST? C'est, peut-être vous pouvez essayer d'alerter les suivantes: { cache : false, saveID : saveIt.valeur, saveMo : saveMonth, saveYr : saveYear, saveCtg : saveCt, saveThg : sauve } Peut-être saveMonth devrait être saveMonth.valeur (tout comme saveIt.valeur)?
Yep...c'est en fait par le biais de la
data.success
bloc, et indique que la mise à jour a réussi. Le var que j'ai utilisé pour saveMonth est la valeur. Des choses bizarres...une sorte de problème de mise en cache de moi pense.OriginalL'auteur devpl
Premières choses qui vient à mon esprit, c'est un problème de mise en cache sur la requête AJAX. Essayer d'ajouter une valeur aléatoire (à l'aide des Mathématiques.Random() ou ce que vous voulez) à la demande POST et de voir ce qui se passe. J'ai toujours ajouter une valeur aléatoire pour OBTENIR des demandes pour s'assurer que les réponses sont uniques, mais je ne suis pas sûr de savoir comment au sujet de la requête POST.
Aussi consulter ce lien et voir si elle s'applique:
http://greenash.net.au/posts/thoughts/an-ie-ajax-gotcha-page-caching
POST
est normalement pas être mis en cache. Aussi IE sait que.OriginalL'auteur NinjaBomb
À ce point dans le processus, je voudrais configurer un serveur à côté du journal et de voir ce que IE est en fait l'affichage et s'il était réellement poster quoi que ce soit, pas beaucoup d'un conseil de code, mais le code me semble bon.
OriginalL'auteur Kristoffer Sall-Storgaard
Je recommande d'utiliser texte du lien avec activés valeur du paramètre de capture pour le post-mortem de débogage. Il est gratuit donc essayez-le.
OriginalL'auteur Alois Reitbauer
Avez-vous essayé d'utiliser la base .ajax méthode à la place de la poste à l'abstraction?
http://docs.jquery.com/Ajax/jQuery.ajax#options
C'est peut-être pas détecter le type de données avec la méthode post.
Voici un plein appel ajax qui fonctionne pour moi:
OriginalL'auteur ScottE
Changer
à
a fonctionné pour moi.
OriginalL'auteur Shagglez
Pour le débogage des problèmes de ce genre assurez-vous d'obtenir des informations sur l'erreur. IE tend à se taire quand quelque chose va mal, mais il y a un moyen d'obtenir une erreur:
Au moins vous savez quel est le problème et vous pouvez commencer à rechercher plus efficacement la bonne solution.
OriginalL'auteur patrick