Vous n'êtes pas identifié(e).
Pages :: 1
salut! J'ai commencé un projet pour créer un site local en JQuery Mobile. Ce site dispose d'un formulaire (liste déroulante, champs de texte et envoi d'une image) qui une fois complété doit transmettre les informations collectées via un bouton '' Envoyer '' à ma base de données MySql préalablement créée. La préoccupation est à ce niveau; Une fois que le bouton '' Envoyer '' (Submit) a été actionné, j'ai ce message d'erreur: Note: Undefined index: upload dans C: \ wamp64 \ www \ impricolor-final2 \ insert.php à la ligne 27 (le contenue de la ligne 27 est $tmp_file = $_FILES['upload']['tmp_name'];)
J'ai demander de l'aide dans les forums jQuery Mobile et il semblerait que l'erreur vient de mon code PHP. J'ai alors fait un débogage de mon PHP et il semble que le problème vient du code pour l’envoi de l'image. Je suis bloquer à ce niveau et toute aide serait la bienvenue.
PS: En HTML simple (Lorsque je retire les scripts JQM) les codes fonctionnent très bien. Le problème se produit uniquement lorsque je passe à Jquery Mobile(v1.4.5).
Ci joint les codes et le message d'erreur
Merci d'avance.
Le code de mon formulaire
<body>
<div data-role="page">
<div data-role="header" data-theme="b">
<h1>Case ConnecT</h1>
</div><!-- /header -->
<style>
#output{
height:110px;
width:auto;
display:block;
margin-left: auto;
margin-right: auto;
padding:5px;
}
</style>
<form method="POST" action="insertion.php" enctype="multipart/form-data">
<label for="select-choice-1" class="select">Selectionner votre machine</label>
<select name="select-choice-1" id="select-choice-1">
<option value="Rotative: Derouleur">Rotative: Derouleur</option>
<option value="Rotative: Debiteur">Rotative: Debiteur</option>
<option value="Rotative: armoire electrique">Rotative: armoire electrique</option>
<option value="Rotative: Pupitre">Rotative: Pupitre</option>
</select>
<label for="textarea">Textarea:</label>
<textarea cols="40" rows="8" name="text_rep" id="textarea"></textarea>
<label for="file">File:</label>
<input name="upload" id="file" value="" type="file" onchange="loadFile(event)"><img id="output"/>
</br><input type="submit" name="Envoyer" value="Enregistrer" />
</form>
<script>
var loadFile = function(event) {
var reader = new FileReader();
reader.onload = function(){
var output = document.getElementById('output');
output.src = reader.result;
};
reader.readAsDataURL(event.target.files[0]);
};
</script>
<div data-role="footer" data-theme="b">
<h4>Case ConnecT Version 1.1</h4>
</div><!-- /footer -->
</div><!-- /page -->
</body>
</html>
Le code de ma page de traitement
<body>
<div data-role="page">
<div data-role="header" data-theme="b">
<h1>Case ConnecT</h1>
</div><!-- /header -->
<?php
//connexion
include('connexion.php');
//print_r($_FILES);
if( isset($_POST['Envoyer']) ) // si formulaire soumis
{
$content_dir = 'images/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['upload']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['upload']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
{
exit("Le fichier n'est pas une image");
}
// on copie le fichier dans le dossier de destination
$timeline = time();
$name_file = $timeline . "-" . $_FILES['upload']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
echo "Le fichier a bien été uploadé";
}
$Designation= $_POST['Designation'];
$text_rep= $_POST['text_rep'];
$requete = "INSERT INTO `repare_panne` (`id`, `Designation`, `text_rep`, `photo`) VALUES
(NULL, '$Designation', '$text_rep', '$name_file');";
$resultat= $bdd-> exec($requete);
if($resultat==1) { echo'Votre panne a bien ete envoyer';
}else {
echo ' ohlala ...problème';
}
?>
<div data-role="footer" data-theme="b">
<h4>Case ConnecT Version 1.1</h4>
</div><!-- /footer -->
</div><!-- /page -->
</body>
</body>
</html>
Hors ligne
Je suis content!! J'ai finalement trouvé l'erreur. Je devais juste ajouter l'atibut data-ajax = "false" à la balise de formulaire. Du coup, sujet résolu!
Hors ligne
Pages :: 1