Page 1 sur 1

simplexml charger modification

Posté : 06 oct. 2010, 10:12
par sknano
bonjour a tous
ENFIN j'ai fini mon fichier d'affichage de mon xml
il se charge bien et je peut le modifier
seulement petit hic

je souhaite l'orsque je clic sur Valider les changements il me modifie le fichier xml la ou il doit le faire ( suivant l'id du produit)
vous pouvez m'aiguiller?
voici mon code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Page de modification xml produit</title>
</head>

<body>

<?php

// on ouvre le fichier produit.xml
$xml = simplexml_load_file('produit.xml');

//variable resultant du formulaire 1 et 2
$ecran = $_POST['ecran'];
$produit = $_POST['produit'];
$resultform = $ecran . $produit;



// on cree la fonction qui genere l'id $resultid
// suivant le resultat du form1 et du form2
if ( $resultform == 11 ) {$resultid=1 ;}
	else
if ( $resultform == 12 ) {$resultid=2 ;}	
	else
if ( $resultform == 13 ) {$resultid=3 ;}
	else
if ( $resultform == 14 ) {$resultid=4 ;}
	else
if ( $resultform == 15 ) {$resultid=5 ;}
	else
if ( $resultform == 21 ) {$resultid=6 ;}
	else
if ( $resultform == 22 ) {$resultid=7 ;}
	else
if ( $resultform == 23 ) {$resultid=8 ;}
	else
if ( $resultform == 24 ) {$resultid=9 ;}
	else
if ( $resultform == 25 ) {$resultid=10 ;}
	else
if ( $resultform == 31 ) {$resultid=11 ;}
	else
if ( $resultform == 32 ) {$resultid=12 ;}
	else
if ( $resultform == 33 ) {$resultid=13 ;}
	else
if ( $resultform == 34 ) {$resultid=14 ;}
	else
if ( $resultform == 35 ) {$resultid=15 ;}
	else
if ( $resultform == 41 ) {$resultid=16 ;}
	else
if ( $resultform == 42 ) {$resultid=17 ;}
	else
if ( $resultform == 43 ) {$resultid=18 ;}
	else
if ( $resultform == 44 ) {$resultid=19 ;}
	else
if ( $resultform == 45 ) {$resultid=20 ;}
	else
if ( $resultform == 51 ) {$resultid=21 ;}
	else
if ( $resultform == 52 ) {$resultid=22 ;}
	else
if ( $resultform == 53 ) {$resultid=23 ;}
	else
if ( $resultform == 54 ) {$resultid=24 ;}
	else
if ( $resultform == 55 ) {$resultid=25 ;}
	else
if ( $resultform == 61 ) {$resultid=26 ;}
	else
if ( $resultform == 62 ) {$resultid=27 ;}
	else
if ( $resultform == 63 ) {$resultid=28 ;}
	else
if ( $resultform == 64 ) {$resultid=29 ;}
	else
if ( $resultform == 65 ) {$resultid=30 ;}

	else {}

// on cree la premiere liste deroulante
echo ' 
<FORM METHOD=POST ACTION="modif_prod.php">
Quel est le rayon a modifier ?  <select name="ecran">
		<option value=""></option>
        <option value="1">Rayon casque</option>
		<option value="2">Rayon blouson</option>
		<option value="3">Rayon gant</option>
		<option value="4">Rayon cross</option>
		<option value="5">Caisse</option>
		<option value="6">Moto Occasion</option>
        </select>
<br>
';
// on cree la deuxieme liste deroulante
echo '
Quel est le produit à modifier ? <select name="produit" onchange="submit();">
		<option value=""></option>
        <option value="1">Produit n°1</option>
		<option value="2">Produit n°2</option>
		<option value="3">Produit n°3</option>
		<option value="4">Produit n°4</option>
		<option value="5">Produit n°5</option>
        </select>
<br>
</form>
';
// on cree la fonction $numid qui va lire le numero id
foreach ($xml->xpath('/produits/num[@id ="'.$resultid.'"]') as $numid)
{
// on affiche les textes des noeuds dans un formulaire d'apres la variable $numid
echo '
<FORM METHOD=POST ACTION="modif_prod.php">
Le titre du produit             :	<input name="titre" type="text"  value="'.$numid->titre.'" size="25" /><br>
Le lien de l image              :	<input name="picture" type="text"  value="'.$numid->picture.'" size="25" /><br></input>
Le texte clignotant             :		<select name="encart">
			<option value="">'.$numid->encart.'</option>
					<option value="promo">PROMO</option>
					<option value="exclu">EXCLU</option>
					<option value="velo">VELO</option>
		</select><br>
Le prix de produit              :	<input name="price" type="text"  value="'.$numid->price.'" size="25" /><br></input>
Les caracteristiques du produit :	<textarea name="carac" size="100" cols="100" rows="4">'.$numid->carac.'</textarea>
<br><br>
<input name="reset" type="reset" value="Tout effacer" /> 
<input type="submit" value="Valider les changements"> 

</form>
';
}

?>




</body>
</html>
Merci a tous


HAAAAA je touche enfin au but

Re: simplexml charger modification

Posté : 06 oct. 2010, 15:23
par sknano
personne ne peut m'aider????

Re: simplexml charger modification

Posté : 06 oct. 2010, 15:26
par stealth35
enfaite tu dois aller cherche l'id que tu modifie (via xpath par exemple), apres tu remplace les object avec les nouvelle valeur,
pour finir tu enregistres avec SimpleXMLElement::asXML

Re: simplexml charger modification

Posté : 06 oct. 2010, 16:13
par sknano
je remplace comment
je fias un truc de ce type

$xml->movie[0]->characters->character[0]->name = 'Miss Coder';

Re: simplexml charger modification

Posté : 06 oct. 2010, 16:21
par stealth35
je remplace comment
je fias un truc de ce type

$xml->movie[0]->characters->character[0]->name = 'Miss Coder';
ouai :wink:

Re: simplexml charger modification

Posté : 06 oct. 2010, 16:23
par sknano
j'ai pondut ca :

// creation des variable pour enregistrer sur le xml
// picture
$xml->num[@id =.$numid.]->picture = 'je sais pas quoi mettre comme variable';
// titre
$xml->num[@id =.$numid.]->titre = 'je sais pas quoi mettre comme variable';
// price
$xml->num[@id =.$numid.]->price = 'je sais pas quoi mettre comme variable';
// encart
$xml->num[@id =.$numid.]->encart = 'je sais pas quoi mettre comme variable';
// carac
$xml->num[@id =.$numid.]->carac = 'je sais pas quoi mettre comme variable';


mais je sais pas quoi mettre dans les valeur sachant que les valeur sont dans des input text ??

et le
$xml->asXML();

je le met dans l'action du bouton envoyer ou je le laisse comme ca???