Posez votre question Signaler

Annuaire/PHP/Ajax

lola2k 4Messages postés 18 mai 2007Date d'inscription - Dernière réponse le 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 (http://www.oreilly.fr/contenu/2007/06/25/un-gestionnaire-de-contact-ajax-en-php). 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
Lire la suite 

Annuaire/PHP/Ajax »

1 réponses
Réponse
+0
moins plus
<?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
?>
Ajouter un commentaire
Ce document intitulé « annuaire/PHP/Ajax » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook