Bonjour,
Voila je rencontre un petit problème avec mon code.
J'ai du modifier un formulaire (modifier le contenu editorial) pour ensuite tester si celà s'enregistrais bien en base de donnée, j'ai créer une bdd sur mon serveur, importé la bdd existante et modifier les acces dans les fichiers. Jusque là .. ok !
J'ai modifier mon content, rajouter les slides etc .. ok !
Quand je fait mon test, je rencontre une erreur qui me dis mauvais format, requete non locale (dans la console) alors que tout à l'heure, j'avais bien les données enregistrées, mais pas apparu dans la base de donnée .. je suis totalement perdu :(
La gestion du code en base de donnée se passe ici principalement :
// CONFIGURATION APPLICATION
var type = "congres"; // congres | terrain
var don = 25;
/* REQUETES HORS LIGNE */
var cpt = 0;
var requestId = "takeda_request";
var postLink = "http://jonathanromain.eu/takeda/php/"+type+"/webservice.php";
// INTERNET
// checkSavedRequest();
window.addEventListener("offline", function(e) {
console.log("offline");
}, false);
window.addEventListener("online", function(e) {
console.log("online");
checkSavedRequest();
}, false);
// REQUETES
function sendData(data)
{
cpt++;
console.log("requete envoyée : "+cpt);
console.log("données envoyées : "+data);
sendRequest(postLink,data);
}
function sendRequest(postLink,sendData,id)
{
$.ajax({
type: "POST",
url: postLink,
data: requestId+"="+sendData,
success: function(response){
console.log(response);
if(response=='ok') // ok --- lorsque les données sont conformes
{
console.log("requete reçu");
// Affichage sur l'écran externe
refreshAffichageDon();
}
else if(response=='error') // error --- lorsque les données sont non conformes (ne devrait pas arriver en production)
{
console.log("mauvais format");
}
// suppresion de la requete locale si existante
var localRequest = localStorage.getItem(id);
if(localRequest !== undefined && localRequest != null)
{
localStorage.removeItem(id);
console.log('requete stockée détruite');
}
else
{
console.log("requete non locale");
}
},
error: function()
{
if(localStorage)
{
// requete stocké si n'a jamais été stockée
if(id==undefined || id==null)
{
console.log('pas de réponse, requete stockée');
localStorage.setItem(requestId+'_'+cpt, sendData);
// Affichage sur l'écran externe
refreshAffichageDon();
}
else // si la donnée est déja stocké, mais echec d'envoi
{
console.log('pas de réponse, requete stockée conservée');
}
}
else
{
alert('mode hors ligne non disponible');
}
}
});
}
function checkSavedRequest()
{
// envoie des requetes pour chaque item trouvé
var key,requeteTMP;
for(var i=0;i<localStorage.length;i++)
{
key = localStorage.key(i);
if(key.indexOf(requestId)>=0)
{
requeteTMP = localStorage.getItem(key);
console.log(key);
if(requeteTMP != "undefined" || requeteTMP != "null")
{
cpt++;
sendRequest(postLink,requeteTMP,key);
console.log('requete stocké envoyée');
}
}
}
}
/* CONTENU */
function setValidation(id,questionData)
{
$('#'+id+'_validation').on('touchend mouseup',function(event){
event.preventDefault();
if(miih.ui.notSwiped(event) && !reponse)
{
// Traitements des données
questionData();
// Déblocage du bouton suivant
reponse = true;
$(this).parent().find('.nextBtn').css('opacity','1');
$(this).css('opacity','0.3');
}
});
}
function getBoxValue(id,typeOfElement)
{
var resultat = "";
var boxList = $('#'+id).find("."+typeOfElement);
for(var i=0;i<boxList.length;i++)
{
if($(boxList[i]).data('active')=='1')
{
resultat += $(boxList[i]).data('reponse') + ', ';
}
}
boxList = resultat.substring(0,resultat.lastIndexOf(','));
return boxList;
}
function bindCheckBox(id)
{
var checkBoxList = $('#'+id).find(".check");
for(var i=0;i<checkBoxList.length;i++)
{
$(checkBoxList[i]).data('active','0');
$(checkBoxList[i]).on('touchend mouseup',function(event){
event.preventDefault();
if(!reponse)
{
if($(this).data('active')=='0')
{
$(this).data('active','1');
}
else
{
$(this).data('active','0');
}
$(this).css('opacity',$(this).data('active'));
}
})
}
}
function bindCheckBoxImg(id)
{
var checkBoxList = $('#'+id).find(".check");
for(var i=0;i<checkBoxList.length;i++)
{
$(checkBoxList[i]).data('active','0');
/*$(checkBoxList[i]).data('opacity','0.5');*/
$(checkBoxList[i]).on('touchend mouseup',function(event){
event.preventDefault();
if(!reponse)
{
if($(this).data('active')=='0')
{
$(this).data('active','1');
$(this).css('background-image','url(medias/img/'+$(this).data('reponse').toLowerCase()+'_on.png)');
/*$(this).data('opacity','1');*/
}
else
{
$(this).data('active','0');
$(this).css('background-image','url(medias/img/'+$(this).data('reponse').toLowerCase()+'.png)');
/*$(this).data('opacity','0.5');*/
}
$(this).css('opacity',$(this).data('opacity'));
}
})
}
}
function bindSwitchBox(id)
{
var switchBoxList = $('#'+id).find(".switch");
for(var i=0;i<switchBoxList.length;i++)
{
$(switchBoxList[i]).on('touchend mouseup',function(event){
event.preventDefault();
var switcher = $(this);
if(!reponse)
{
var switcherId = switcher.attr('id');
var coupleId = switcherId.substring(switcherId,switcherId.length-4); //4 _OUI ou _NON
var antagonisteId;
if(switcherId.indexOf('oui')!=-1)
{
antagonisteId = coupleId+"_non";
}
else
{
antagonisteId = coupleId+"_oui";
}
var antagonisteSwitcher = $("#"+antagonisteId);
switcher.data('active','1');
antagonisteSwitcher.data('active','0.3');
switcher.css('opacity',switcher.data('active'));
antagonisteSwitcher.css('opacity',antagonisteSwitcher.data('active'));
}
})
}
}
function bindRadioBox(id)
{
var radioBoxList = $('#'+id).find(".radio");
for(var i=0;i<radioBoxList.length;i++)
{
$(radioBoxList[i]).data('active','0');
$(radioBoxList[i]).on('touchend mouseup',function(event){
event.preventDefault();
if(!reponse)
{
// Reset
radioBoxList.data('active','0');
radioBoxList.css('opacity','0');
// Attribution
if($(this).data('active')=='0')
{
$(this).data('active','1');
$(this).css('opacity',$(this).data('active'));
}
}
})
}
}
function bindRadioBoxImg(id)
{
var radioBoxList = $('#'+id).find(".radio");
for(var i=0;i<radioBoxList.length;i++)
{
$(radioBoxList[i]).data('active','0');
$(radioBoxList[i]).on('touchend mouseup',function(event){
event.preventDefault();
if(!reponse)
{
// Reset
radioBoxList.data('active','0');
radioBoxList.css('opacity','0.5');
// Attribution
if($(this).data('active')=='0')
{
$(this).data('active','1');
$(this).css('opacity',$(this).data('active'));
}
}
})
}
}
function bindDraggableBox(id){}
/* REFRESH DE L'APPLICATION */
// Au bout de 1 minute relance le quiz
var inactiveTime = 0;
var inactivity = setInterval(function(){
inactiveTime++;
if(inactiveTime>=60)
{
resetInactivityTime();
miih.navigation.goTo('flow_1','slide1');
}
},1000);
function resetInactivityTime()
{
//console.log("Période d'inactivité : "+inactiveTime+"sec");
inactiveTime = 0;
}
$('body').on('touchend mouseup',function(){
resetInactivityTime();
})
function refreshAffichageDon()
{
/* console.log(parseInt(nbQuizRepondu)*don); */
var nbQuizRepondu = 0;
$.ajax({
type: "GET",
url: "http://jonathanromain.eu/takeda/php/congres/getnbreponses.php",
success: function(response){
// ONLINE
nbQuizRepondu = parseInt(response);
console.log(nbQuizRepondu);
var iFrame = document.createElement("IFRAME");
iFrame.setAttribute("src", miih.data.urlScheme() +'/fx/'+ (nbQuizRepondu*don) );
document.body.appendChild(iFrame);
iFrame.parentNode.removeChild(iFrame);
iFrame = null;
// Mets à jour le nombre de réponse faites issu du serveur
localStorage.setItem(miih.presentation.generic_name+"_cpt_"+type,nbQuizRepondu);
},
error: function()
{
// OFFLINE
nbQuizRepondu = localStorage.getItem(miih.presentation.generic_name+"_cpt_"+type);
if(nbQuizRepondu !== undefined && nbQuizRepondu != null)
{
nbQuizRepondu = parseInt(nbQuizRepondu);
}
else
{
nbQuizRepondu = 0;
}
console.log(nbQuizRepondu);
var iFrame = document.createElement("IFRAME");
iFrame.setAttribute("src", miih.data.urlScheme() +'/fx/'+ (nbQuizRepondu*don) );
document.body.appendChild(iFrame);
iFrame.parentNode.removeChild(iFrame);
iFrame = null;
}
});
}
function checkEmail(value)
{
filtre = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if(filtre.test(value))
return true;
else
return false;
}
function validateQuiz()
{
var nbQuizRepondu = localStorage.getItem(miih.presentation.generic_name+"_cpt_"+type);
if(nbQuizRepondu !== undefined && nbQuizRepondu != null)
{
nbQuizRepondu = parseInt(nbQuizRepondu) + 1;
}
else
{
nbQuizRepondu = 1;
}
localStorage.setItem(miih.presentation.generic_name+"_cpt_"+type,nbQuizRepondu);
sendData(sessionData.join(";"));
miih.navigation.goToNextSlide();
}
error script.js?1520172017887:41
mauvais format script.js?1520172017887:50
requete non locale script.js?1520172017887:61
Est-ce que quelqu'un pourrait peut-être checker et me dire si je passe à côté de quelque chose d'énorme en erreur ? Je peut vous partager le fichier si vous le souhaitez, faite le moi savoir.
Merci beaucoup en tout cas pour votre aide précieuse,
Bonne soirée,
On a un fichier webservice.php pour les questions des différents slides du formulaire :
(j'ai retiré les login de la bdd, si quelqu'un veut y jeter un oeil pas de soucis)
<?php
header("Access-Control-Allow-Origin: *");
$conn = mysqli_connect('','','','');
if(!$conn) {
die('Could not connect ' . mysqli_error()."<br>");
}
function fixEncoding($in_str)
{
$cur_encoding = mb_detect_encoding($in_str) ;
if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8"))
return $in_str;
else
return utf8_encode($in_str);
}
function fixEncodingOfArray($arrayToFix)
{
for($i=0;$i<count($arrayToFix);$i++)
{
$arrayToFix[$i] = fixEncoding($arrayToFix[$i]);
}
}
$res = "";
if(isset($_POST['takeda_request']))
{
$receiveRequest = $_POST['takeda_request'];
$res = explode(';',$receiveRequest);
$intitule = array(
"Saurez-vous reconnaître de quelle association il s’agit ? fle",
"Saurez-vous reconnaître de quelle association il s’agit ? af3m",
"Informez-vous systématiquement vos patients de l'existence de l'association ? af3m",
"À quelles occasions ? fle",
"Sur quel(s) support(s) vous êtes-vous appuyé(e) ? fle",
"Pour quels motifs n’en parlez-vous pas ? fle",
"Parlez-vous systématiquement de ces associations à vos patients ? af3m",
"À quelles occasions en avez-vous déjà parlé ? af3m",
"Sur quel(s) support(s) vous êtes-vous appuyé(e) ? af3m",
"Pour quels motifs n’en parlez-vous pas ? af3m",
"Connaissez-vous les actions meneés par ces associations ? fle",
"Connaissez-vous les actions meneés par ces associations ? af3m",
"Lesquelles ? af3m",
"Savez-vous si vos patients font appel aux services proposés ? fle",
"Savez-vous si vos patients font appel aux services proposés ? af3m",
"Vos patients vous parlent-ils de ces associations ? fle",
"Vos patients vous parlent-ils de ces associations ? af3m",
"Connaissez-vous des bénévoles œuvrant au sein de ces associations ? fle",
"Connaissez-vous des bénévoles œuvrant au sein de ces associations ? af3m",
"Sur quels types d'actions souhaitez-vous vous engager aux côtés des associations ? fle",
"Sur quels types d'actions souhaitez-vous vous engager aux côtés des associations ? af3m",
"Selon vous, quels sont les quatre items qui caractérisent le mieux les deux associations ? fle",
"Selon vous, quels sont les quatre items qui caractérisent le mieux les deux associations ? af3m",
"Pays",
"Spécialité",
"Souhaitez-vous être contacter par l’une des associations ?",
"Si oui, laquelle ?",
"Email"
);
fixEncodingOfArray($intitule);
fixEncodingOfArray($res);
$sql = "SELECT `pays` FROM `reponses` WHERE `id`=1";
$retval = mysqli_query($conn,$sql);
if(mysqli_num_rows($retval) == 0) // Initialisation si besoin
{
$sql = "INSERT INTO `reponses`(`q1_fle`,`q1_af3m`,`q2_fle`,`q3a_fle`,`q4_fle`,`q3_fle`,`q2_af3m`,`q3a_af3m`,`q4_af3m`,`q3_af3m`,`q5_fle`,`q5_af3m`,`q5_bis_af3m`,`q6_fle`,`q6_af3m`,`q7_fle`,`q7_af3m`,`q8_fle`,`q8_af3m`,`q9_fle`,`q9_af3m`,`q10_fle`,`q10_af3m`,`pays`,`specialite`,`contact`,`association`,`email`) VALUES ('$intitule[0]','$intitule[1]','$intitule[2]','$intitule[3]','$intitule[4]','$intitule[5]','$intitule[6]','$intitule[7]','$intitule[8]','$intitule[9]','$intitule[10]','$intitule[11]','$intitule[12]','$intitule[13]','$intitule[14]','$intitule[15]','$intitule[16]','$intitule[17]','$intitule[18]','$intitule[19]','$intitule[20]','$intitule[21]','$intitule[22]','$intitule[23]','$intitule[24]','$intitule[25]','$intitule[26]','$intitule[27]','$intitule[28]')";
$retval = mysqli_query($conn,$sql);
}
$sql = "INSERT INTO `reponses`(`q1_fle`,`q1_af3m`,`q2_fle`,`q3a_fle`,`q4_fle`,`q3_fle`,`q2_af3m`,`q3a_af3m`,`q4_af3m`,`q3_af3m`,`q5_fle`,`q5_af3m`,`q5_bis_af3m`,`q6_fle`,`q6_af3m`,`q7_fle`,`q7_af3m`,`q8_fle`,`q8_af3m`,`q9_fle`,`q9_af3m`,`q10_fle`,`q10_af3m`,`pays`,`specialite`,`contact`,`association`,`email`) VALUES ('$res[0]','$res[1]','$res[2]','$res[3]','$res[4]','$res[5]','$res[6]','$res[7]','$res[8]','$res[9]','$res[10]','$res[11]','$res[12]','$res[13]','$res[14]','$res[15]','$res[16]','$res[17]','$res[18]','$res[19]','$res[20]','$res[21]','$res[22]','$res[23]','$res[24]','$res[25]','$res[26]','$res[27]','$res[28]')";
$retval = mysqli_query($conn,$sql);
if($retval)
{
echo 'ok';
}
else
{
echo 'error';
}
}
else
{
echo "error";
}
?>
aussi un fichier resultatquiz.php
<?php
// header("Access-Control-Allow-Origin: *");
$conn = mysqli_connect('','','','');
if(!$conn) {
die('Could not connect ' . mysqli_error()."<br>");
}
$list = array ();
$sql = "SELECT `q1_fle`,`q1_af3m`,`q2_fle`,`q3a_fle`,`q4_fle`,`q3_fle`,`q2_af3m`,`q3a_af3m`,`q4_af3m`,`q3_af3m`,`q5_fle`,`q5_af3m`,`q5_bis_af3m`,`q6_fle`,`q6_af3m`,`q7_fle`,`q7_af3m`,`q8_fle`,`q8_af3m`,`q9_fle`,`q9_af3m`,`q10_fle`,`q10_af3m`,`pays`,`specialite`,`contact`,`association`,`email` FROM `reponses` WHERE 1";
$retval= mysqli_query($conn,$sql);
if($retval)
{
for($i=0;$i<mysqli_num_rows($retval);$i++)
{
$row = mysqli_fetch_array($retval);
$reponse = array ();
array_push($reponse, $row["q1_fle"]);
array_push($reponse, $row["q1_af3m"]);
array_push($reponse, $row["q2_fle"]);
array_push($reponse, $row["q3a_fle"]);
array_push($reponse, $row["q4_fle"]);
array_push($reponse, $row["q3_fle"]);
array_push($reponse, $row["q2_af3m"]);
array_push($reponse, $row["q3a_af3m"]);
array_push($reponse, $row["q4_af3m"]);
array_push($reponse, $row["q3_af3m"]);
array_push($reponse, $row["q5_fle"]);
array_push($reponse, $row["q5_af3m"]);
array_push($reponse, $row["q5_bis_af3m"]);
array_push($reponse, $row["q6_fle"]);
array_push($reponse, $row["q6_af3m"]);
array_push($reponse, $row["q7_fle"]);
array_push($reponse, $row["q7_af3m"]);
array_push($reponse, $row["q8_fle"]);
array_push($reponse, $row["q8_af3m"]);
array_push($reponse, $row["q9_fle"]);
array_push($reponse, $row["q9_af3m"]);
array_push($reponse, $row["q10_fle"]);
array_push($reponse, $row["q10_af3m"]);
array_push($reponse, $row["pays"]);
array_push($reponse, $row["specialite"]);
array_push($reponse, $row["contact"]);
array_push($reponse, $row["association"]);
array_push($reponse, $row["email"]);
array_push($list, $reponse);
}
$historic = date('d-m-Y_H:i:s');
$fileName = 'presentation.csv';
//headers
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Description: File Transfer');
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename='.$fileName.'.csv;');
header('Content-Transfer-Encoding: binary');
$fp = fopen($fileName, 'w');
// add BOM to fix UTF-8 in Excel
/*fputs($fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
if ($fp)
{
foreach ($list as $fields) {
fputcsv($fp, $fields, ";");
}
}*/
// delete the last empty line
$stat = fstat($fp);
ftruncate($fp, $stat['size']-1);
fclose($fp);
header('Location: '.$fileName);