par
chegmarco » 02 sept. 2020, 21:58
Bonjour.
Voici mon Code Jquery-Ajax:
Code : Tout sélectionner
$(document).ready(function(){
$("#submit").click(function(){
function sendUssd(data){
if(localStorage.getItem("ussdData")!==undefined && localStorage.getItem("ussdData")!==null){
var ussdData=JSON.parse(localStorage.getItem("ussdData"))
loading(1)
ussdResultWithoutKeyboard()
msg("Sending the ussd");
var url=ussdData.url;
var dataString = 'msisdn='+ ussdData.phone + '&message='+ data;
// alert(url);
// alert(dataString);
setTimeout(()=>{
$.ajax({
type: "POST",
// url = ussdData.url;
url: url,
data: dataString,
cache: false,
success: function(output){
if(output.indexOf("1.")!==-1){
if(output.indexOf("CON")!==-1){
output=output.replace(/CON/g,"")
}
output=output.replace(/\n/g,"<br />")
resultInputsVis(1);
setOutput(output)
showResult();
}else if(output.indexOf("1.")===-1){
// server doesn't still needs the commands from user
output=output.replace(/\n/g,"<br />")
resultInputsVis(0);
setOutput(output)
showResult();
var outEle=selector(".result")
var button=document.createElement("button")
button.innerHTML="OK";
button.classList.add("endSession");
button.addEventListener("click",()=>{
button.remove();
onlyKeyBoardMode()
})
outEle.appendChild(button)
}else if(output.indexOf("END")!==-1){
// server doesn't still needs the commands from user
output=output.replace(/END/g,"")
output=output.replace(/\n/g,"<br />")
resultInputsVis(0);
setOutput(output)
showResult();
var outEle=selector(".result")
var button=document.createElement("button")
button.innerHTML="OK";
button.classList.add("endSession");
button.addEventListener("click",()=>{
button.remove();
onlyKeyBoardMode()
})
outEle.appendChild(button)
}else{
output=output.replace(/\n/g,"<br />")
resultInputsVis(0);
// setOutput("Server is not responding well")
setOutput(output)
showResult();
var outEle=selector(".result")
var button=document.createElement("button")
button.innerHTML="OK";
button.classList.add("endSession");
button.addEventListener("click",()=>{
button.remove();
onlyKeyBoardMode()
})
outEle.appendChild(button)
}
loading(0)
},
error: function(xhr,status,error) {
loading(0)
onlyKeyBoardMode()
//msg(error)
showError(error);
}
});
},1000)
}else{
showError("Enregistrer d'abord vos données");
}
}
});
});
Dans mon
AJAX, inclus dans la méthode JS
setTimeOut de la ligne
13 à
85, j'ai appelé dans l'attribut
Ajax,
success et
error, une fonction
output qui elle aussi devait appelé certaines autres fonctions que j'ai défini dans mon Script JS dont
resultInputsVis(),
setOutput(),
showResult(),
loading(),
onlyKeyBoardMode(),
showError().
LE PROBLEME, c'est que ce Code AJAX ne fonctionne pas du tout. La seule chose qui fonctionne c'est le
loading(1) de la ligne
6 situé juste avant l'appel AJAX contenu dans la fonction
setTimeOut qui s'exécute continuellement et sans arrêt. Et quand je décide de commenter ce
loading(1) (
//loading(1)),
je ne vois rien afficher sur la Page. LA PAGE EST DONC 100% VIDE ET BLANCHE. Même quand je fais "
Outils Developper (Inspecter) --> Network" dans mon Navigateur Web (Chrome), rien n'est exécuter.
Comment donc corriger mon Code AJAX de sorte à l'Appeler 1 ms après l'exécution du loading(1) de la ligne 6 pour qu'il appelle lui aussi (l'AJAX appelle lui aussi) dans le success, les fonctions définie dans mon Script JS dont resultInputsVis(), setOutput(), showResult(), loading(), onlyKeyBoardMode(), showError().
Bonjour.
Voici mon Code Jquery-Ajax:
[CODE]$(document).ready(function(){
$("#submit").click(function(){
function sendUssd(data){
if(localStorage.getItem("ussdData")!==undefined && localStorage.getItem("ussdData")!==null){
var ussdData=JSON.parse(localStorage.getItem("ussdData"))
loading(1)
ussdResultWithoutKeyboard()
msg("Sending the ussd");
var url=ussdData.url;
var dataString = 'msisdn='+ ussdData.phone + '&message='+ data;
// alert(url);
// alert(dataString);
setTimeout(()=>{
$.ajax({
type: "POST",
// url = ussdData.url;
url: url,
data: dataString,
cache: false,
success: function(output){
if(output.indexOf("1.")!==-1){
if(output.indexOf("CON")!==-1){
output=output.replace(/CON/g,"")
}
output=output.replace(/\n/g,"<br />")
resultInputsVis(1);
setOutput(output)
showResult();
}else if(output.indexOf("1.")===-1){
// server doesn't still needs the commands from user
output=output.replace(/\n/g,"<br />")
resultInputsVis(0);
setOutput(output)
showResult();
var outEle=selector(".result")
var button=document.createElement("button")
button.innerHTML="OK";
button.classList.add("endSession");
button.addEventListener("click",()=>{
button.remove();
onlyKeyBoardMode()
})
outEle.appendChild(button)
}else if(output.indexOf("END")!==-1){
// server doesn't still needs the commands from user
output=output.replace(/END/g,"")
output=output.replace(/\n/g,"<br />")
resultInputsVis(0);
setOutput(output)
showResult();
var outEle=selector(".result")
var button=document.createElement("button")
button.innerHTML="OK";
button.classList.add("endSession");
button.addEventListener("click",()=>{
button.remove();
onlyKeyBoardMode()
})
outEle.appendChild(button)
}else{
output=output.replace(/\n/g,"<br />")
resultInputsVis(0);
// setOutput("Server is not responding well")
setOutput(output)
showResult();
var outEle=selector(".result")
var button=document.createElement("button")
button.innerHTML="OK";
button.classList.add("endSession");
button.addEventListener("click",()=>{
button.remove();
onlyKeyBoardMode()
})
outEle.appendChild(button)
}
loading(0)
},
error: function(xhr,status,error) {
loading(0)
onlyKeyBoardMode()
//msg(error)
showError(error);
}
});
},1000)
}else{
showError("Enregistrer d'abord vos données");
}
}
});
});
[/CODE]
Dans mon [B]AJAX[/B], inclus dans la méthode JS [U]setTimeOut[/U] de la ligne [B]13[/B] à [B]85[/B], j'ai appelé dans l'attribut [B]Ajax[/B], [U]success[/U] et [U]error[/U], une fonction [U]output[/U] qui elle aussi devait appelé certaines autres fonctions que j'ai défini dans mon Script JS dont [U]resultInputsVis()[/U], [U]setOutput()[/U], [U]showResult()[/U], [U]loading()[/U], [U]onlyKeyBoardMode()[/U], [U]showError()[/U].
LE PROBLEME, c'est que ce Code AJAX ne fonctionne pas du tout. La seule chose qui fonctionne c'est le [U]loading(1)[/U] de la ligne [B]6[/B] situé juste avant l'appel AJAX contenu dans la fonction [U]setTimeOut[/U] qui s'exécute continuellement et sans arrêt. Et quand je décide de commenter ce [U]loading(1)[/U] ([b]//loading(1)[/b]), [B][U]je ne vois rien afficher sur la Page. LA PAGE EST DONC 100% VIDE ET BLANCHE[/U][/B]. Même quand je fais "[B][I]Outils Developper (Inspecter) --> Network[/I][/B]" dans mon Navigateur Web (Chrome), rien n'est exécuter.
[B]Comment donc corriger mon Code AJAX de sorte à l'Appeler [U]1 ms[/U] après l'exécution du [U]loading(1)[/U] de la ligne [U]6[/U] pour qu'il appelle lui aussi ([I]l'AJAX appelle lui aussi[/I]) dans le success, les fonctions définie dans mon Script JS dont [U]resultInputsVis()[/U], [U]setOutput()[/U], [u]showResult()[/u], [u]loading()[/u], [U]onlyKeyBoardMode()[/U], [U]showError()[/U][/B].