Annuaire/PHP/Ajax

lola2k Messages postés 7 Statut Membre -  
king nothing Messages postés 1 Statut Membre -
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
Configuration: Linux
Firefox 2.0.0.11

1 réponse

  1. king nothing Messages postés 1 Statut Membre
     
    <?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