J'ai des difficultés à faire fonctionner correctement une fonction AJAX/JSON. J'ai eu cette fonction saisissant la valeur d'une boîte déroulante, mais maintenant je veux utiliser une balise d'ancrage pour définir sa valeur.Problème JSON onFailure
Je pensais qu'il serait facile d'utiliser simplement l'événement onClick pour passer une chaîne à la fonction que j'utilisais pour la liste déroulante mais j'obtiens l'alerte dans l'événement JSON onFailure même si les données sont ajoutées à MySQL. J'ai essayé de supprimer l'alerte de onFailure
événement, mais il n'ajoute pas les données. Le menu déroulant continue à fonctionner correctement, aucune alerte. (Je dois souligner que la suppression de l'alerte a aussi brisé ma liste déroulante)
1er ajouter un événement onClick ...
<a href="<?php echo Settings::get('app.webroot'); ?>?view=schedule&action=questions" onmouseout="MM_swapImgRestore();" onmouseover="MM_swapImage('bre','','template/images/schedule/bre_f2.gif',1)" onclick="assignCallType('testing')";>
2 Je vérifie main.js.php
function assignCallType(type) {
alert(type);
new Request.JSON({
url: "ajax.php",
onSuccess:
function(rtndata,txt){
if (rtndata['STATUS'] != 'OK')
alert('Status was not okay');
},
onFailure :
function() {
alert("onFailure")
}
}).get({
'action': 'assignCallType',
'call_type': type
});
}
3ème Ajax .php: la variable est de retour en PHP et les valeurs sont ajoutés à MySQL, mais je reçois l'alerte en cas JSON onFailure
if ($_GET['action'] == "assignCallType") {
if ($USER->isInsideSales()) {
$call_type = $_GET['call_type'];
$_SESSION['callinfo']->setCallType($call_type);
$_SESSION['callinfo']->save($callid);
echo json_encode(array('STATUS'=>'OK'));
} else {
echo json_encode(array('STATUS'=>'DENIED'));
}
}
Toute idée où je me trompe. La seule différence entre ceci et le déroulant fonctionnant est comment la fonction a été appelée, j'ai utilisé onchange="assignCallType(this.value)"
.
Je pense que votre droit - mais je ne comprends pas l'erreur avec le menu déroulant ... même si je laisse de côté onFailure tous ensemble, je n'ajoute pas les données à mySQL, désolé, je ne comprends pas assez Mootools pour vérifier l'objet XMLHttpRequest. – Mikey1980
même si j'ai surFailure faire n'importe quoi mais une alerte il n'ajoute pas de données ... l'homme je suis confus. – Mikey1980
Essayez de remplacer le gestionnaire onFailure par ce que j'ai indiqué ci-dessus dans ma réponse. –