Champ null dans fichier XML traitement ?
Bonjour,
j'aimerais pouvoir gérer les champs null d'un fichier XML.
Si tous les champs sont remplis, il n'y a aucun problème, la fonction fait ce qu'elle a à faire mais dès qu'un champ vide est présent l'application m'indique l'erreur suivante que je n'arrive pas à résoudre ..
Uncaught TypeError: Cannot call method 'getElementsByTagName' of null
J'ai essayé de traiter ces champs null avec le code suivant mais cela ne marche pas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| function import_sess_list(id_sess)
{
var data = 'traitement_sess='+true+'&id_sess='+id_sess;
var XMLhttp = new XMLHttpRequest();
XMLhttp.open("POST","traitement/traitement_import.php",true);
XMLhttp.onreadystatechange=function(){
if (XMLhttp.readyState==4 && XMLhttp.status==200){
// Assigner le fichier XML à une variable
var doc = XMLhttp.responseXML;
// Lire le premier élément avec DOM
var element = doc.getElementsByTagName('auto_eval').item(0).firstChild ? doc.getElementsByTagName('auto_eval').item(0).firstChild.data : null;
var element2 = doc.getElementsByTagName('util_langue').item(0).firstChild ? doc.getElementsByTagName('util_langue').item(0).firstChild.data : null ;
var element3 = doc.getElementsByTagName('obj').item(0).firstChild ? doc.getElementsByTagName('obj').item(0).firstChild.data : null;
var element4 = doc.getElementsByTagName('dispo').item(0).firstChild ? doc.getElementsByTagName('dispo').item(0).firstChild.data : null;
// Copier le contenu dans le formulaire
document.form_ajout_sess.auto_evaluation.value= element;
document.form_ajout_sess.utilisation_langue.value= element2;
document.form_ajout_sess.objectif.value= element3;
document.form_ajout_sess.disponibilite.value= element4;
}
};
XMLhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
XMLhttp.send(data);
} |
voici mon fichier avec le xml dedans :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| <?php
header('Content-Type: text/xml');
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ? >\n";
echo "<donnees>\n";
include_once("../connexion.php");
if(isset($_POST['traitement_sess']) && isset($_POST['id_sess']) && !empty($_POST['id_sess']))
{
$id_sess=$_POST['id_sess'];
/*INFOS SESSIONS POUR IMPORT apres choix list deroulante*/
try {
// Connect and create the PDO object
$conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
$conn->exec("SET CHARACTER SET utf8"); // Sets encoding UTF-8
// Define and prepare an INSERT statement
$sql="SELECT sess_auto_eval, sess_utilisation_langue, sess_objectif, sess_dispo FROM sess WHERE sess_id = '".$id_sess."'";
$result = $conn->query($sql);
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo "<auto_eval>"; echo $row['sess_auto_eval']; echo "</auto_eval>\n";
echo "<util_langue>"; echo $row['sess_utilisation_langue']; echo "</util_langue>\n";
echo "<obj>"; echo $row['sess_objectif']; echo "</obj>\n";
echo "<dispo>"; echo $row['sess_dispo']; echo "</dispo>\n";
}
$conn = null; // Disconnect
} catch(PDOException $e) {
echo $e->getMessage();
}
}
echo "</donnees>\n";
?> |
Si vous savez comment faire, merci de mon donner un tit coup de pouce :)
Florian