Bonjour,
Je permet de relancer le sujet même si il est résolu pour certains, mais pas pour moi
.
Je recherche une solution a mon problème qui est le suivant:
Je doit envoyer un fichier pdf (binaire)(pour info html2canvas fait une image d'une div et jsPDF met l'image dans un fichier pdf) et des données qui ne sont pas en formulaire vers un fichier de traitement en php pour ensuite les envoyer dans la base de donnée mysql:
J'essaye de faire cet envoie avec ajax jquery via un seul bouton, mais je ne parviens pas a récupérer les données envoyées parcontre je recupere bien le fichier pdf via la commande:
move_uploaded_file($_FILES....
Voici le code js:
function GenPDF(){
window.scrollTo(0, 0); //scroll page entiere du haut en bas
html2canvas(document.getElementById("main"),{scale: 2}).then(function(canvas){ //creation image avec scale: 2-> qualité X2
var doc = new jsPDF();
// doc.setFontSize(40); //taille titre
// doc.text(40, 25, "test") // titre
doc.addImage(canvas.toDataURL("image/jpeg", 0.9), 'JPEG', 15, 10, 180, 280); //'JPEG', 15(Gauche), 10 (Haut), 180 (Droite), 280 (Bas)
var blob = doc.output('blob');
var nomstage = $('#nomstage') . val();
var numstage = $('#numstage') . val();
var FirearmId = $('#FirearmId') . val();
var TrgtTypeId = $('#TrgtTypeId') . val();
var ScoringId = $('#ScoringId') . val();
var StartOn = $('#StartOn') . val();
var StartPos = $('#StartPos') . val();
var Descriptn = $('#Descriptn') . val();
var CourseId = $('#CourseId') . val();
var matchsid = $('#matchsid') . val();
var formData = new FormData();
formData.append('pdf', blob);
var objArr = [];
objArr.push({
formData,
"nomstage": nomstage,
"numstage": numstage,
"FirearmId": FirearmId,
"TrgtTypeId": TrgtTypeId,
"ScoringId": ScoringId,
"StartOn": StartOn,
"StartPos": StartPos,
"Descriptn": Descriptn,
"CourseId": CourseId,
"matchsid": matchsid
});
//JSON obj
formData.append('objArr', JSON.stringify( objArr ));
$.ajax({
url: '/save-capture.php',
type:"POST",
processData:false,
contentType: false,
data: formData,
// complete: function(data){alert("success");}
success: function(response){console.log(response)},
error: function(err){console.log(err)}
});
});
}
Et voici les tentative coté php:
<?php
$var = json_decode(file_get_contents("php://input"),true);
echo "Data recieved by PHP file.\n";
if ($var["nomstage"]=="John"){
echo "ok";
}
else{
echo "nok";
}
echo "\nSent";
die();
j'obtiens nok comme repose
mais je voit bien mes données dans le navigateur lorsque je fait un print_r($_POST) ou ($_REQUEST)
echo '<pre>';
print_r($_REQUEST);
echo '</pre>';
die();
ou
echo '<pre>';
print_r($_POST);
echo '</pre>';
die();
Meme Résultat du print_r de post ou REQUEST
<pre>Array
(
[objArr] => [{"formData":{},"nomstage":"John","numstage":"1","FirearmId":"1","TrgtTypeId":"2","ScoringId":"1","StartOn":"00","StartPos":"Exemple: Standing erect, facing downrange with hanging naturally by the sides.","Descriptn":"Exemple: Engage as they become visible.","CourseId":"1","matchsid":"24"}]
)
</pre>
Merci d'avance pour votre aide
Modifié par Nesyou75 (21 Mar 2020 - 11:21)