Annuaire/PHP/Ajax

Fermé
lola2k Messages postés 7 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 22 février 2008 - 22 févr. 2008 à 11:22
king nothing Messages postés 1 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 24 mai 2008 - 24 mai 2008 à 10:09
Bonjour à tous,
Voilà ma question :
J'ai récupéré un script d'annuaire sur O'Reilly qui me permet de gérer un annuaire avec Ajax dont voici le lien (https://www.oreilly.fr Très grossièrement il fait appel à un fichier *.xml par contact, type toto_dupont.xml

<?xml version="1.0" encoding="UTF-8"?>
<contact>

<nom>Dupont</nom>

<prenom>Toto</prenom>

<mail>toto@dupont-sarl.fr</mail>

<tel>02XXXXXXXX</tel>

<gsm>06XXXXXXXX</gsm>

<adresse>chez lui</adresse>

<cp>00001</cp>

<commune>Dans les nuages</commune>

</contact>

voilou, je trouve ce sript pas mal du tout mais je souhaiterai éditer mes fiches contact prenom_nom.xml via un formulaire sur mon réseau local. Pour ce faire, j'ai tenté un petit form :

<!-- formulaire contact -->
<form method="post" action="traitement-contact.php">
<h2>Ajout d'un contact</h2>
<p>
Le Nom :
<input type="text" name="nom" /><br />
Le Prénom :
<input type="text" name="prenom" /><br />
L'adresse Email :
<input type="text" name="mail" /><br />
Le numéro de téléphone :
<input type="text" name="tel" /><br />
Un numéro de téléphone mobile :
<input type="text" name="gsm" /><br />
L'adresse de votre contact :
<input type="text" name="adresse" /><br />
Le code postal :
<input type="text" name="cp" /><br />
La commune :
<input type="text" name="commune" /><br />
</p>
<input name="soumettre" type="submit" value="Enregistrer">
</form>


et le traitement-contact.php :

<?php
$dom = new DOMDocument();
$dom->load('contact.xml'); // document vide
$nouveauNom->setAttribute("nom", $nom);
$nouveauPrenom->setAttribute("prenom", $prenom);
$nouveauMail->setAttribute("mail", $mail);
$nouveauTel->setAttribute("tel", $tel);
$nouveauGsm->setAttribute("gsm", $gsm);
$nouveauAdresse->setAttribute("adresse",$adresse);
$nouveauCp->setAttribute("cp", $cp);
$nouveauCommune->setAttribute("commune", $commune);
$dom->save('contact/$nom_$prenom.xml');
?>

Bien ça ne marche pas ... j'ai un gentil :

Warning: domdocument() expects at least 1 parameter, 0 given in /home.10.17/vadelio/www/ajax/traitement-contact.php on line 2

Si quelqu'un avait une idée à me soumettre ?

D'avance merci à la communauté,
L.

Fatal error: Call to undefined method: domdocument->load() in /home.10.17/vadelio/www/ajax/traitement-contact.php on line 3

1 réponse

king nothing Messages postés 1 Date d'inscription samedi 24 mai 2008 Statut Membre Dernière intervention 24 mai 2008
24 mai 2008 à 10:09
<?php
$dom = new DOMDocument('1.0', 'iso-8859-1');
$dom->load('contact.xml'); // document vide
$nouveauNom->setAttribute("nom", $nom);
/////////////////////////////////////// 1er remarque//////////////////////////////////////////////////////
avant de donner un atribute a ton markup , il faut comme meme la definir [$nouveauNom=$dom->createElement("nom")]
puit [$nouveauNom->setAttribute("nom",$nom)]
////////////////////////////////////////////////////////////2eme remarque//////////////////////////////////
votre document xml doit etre valider et bien structutré
<contacts>
<contact>
<nom></nom>
<prenom></prenom>
.
.
.
</contact>
</contacts>
ce que n'est pas claire ds votre code
alors ce que je propose
$root=$dom->getElementByTagName("contacts")->item(0);//defenir le root de ton document
$newContact=$dom->createElement("contact");
$nouveauNom=$dom->createElement("nom");
$nouveauNom->setAttribute("nom",$nom);
$newContact->appendChild($nouveauNom);
$root->appendChild($newContact);//comme ça vous aurez un document structuré comme vous souhaitez
//de meme pour les autres (prenom .....)


$dom->save('contact/$nom_$prenom.xml');//sauv et getez une coup d'oeil sur ton xml doc
?>
0