PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » organiser un xml par colonnes. » 25-04-2011 21:04:06

wa! enorme ! j'ai enfin reussi a organiser colonnes lignes et tableaux comme je voullais !!

merci j'ai beaucoup appris!:D

#2 Re : Forum Général PHP » organiser un xml par colonnes. » 25-04-2011 21:04:06

non, j'arrives a rien, j'ai beau chercher ouper deplacer les balises ca me fait n'importe quoi.
le mieux que j'ai reussi c'est a creer un tableau avec 2 colonnes et les titres, mais les autres titres ne sont pas a la ligne et c'est encore pire si je rajoutes les images et description.

j'arrives pas a comprendre la logique du foreach.
normalement il doit executer l'action pour chaque objet et recommencer tant qu'il y'en a non ?
et surtout les faire dans l'ordre...

#3 Re : Forum Général PHP » organiser un xml par colonnes. » 25-04-2011 21:04:06

bon, bin non, c'est bien rangé maintenant mais c'est toujours pas en colonne.

<?php  
if (file_exists('beastcart.xml')) {
  $xml = simplexml_load_file('beastcart.xml');
 
  $catalos = ($xml->catalo);
  $i = 1;
  echo "<table><tr width='900' >";
 
  foreach ($catalos as $catalo) {
   
    echo "<td width ='300' colspan='3'>"; // une colonne
      echo "<p class='style1'><strong>$i";
      printf('- %s</strong></p></td></tr>', $catalo->nom);
    echo "<tr><td width='109'>";
   
      printf('<a href="%s"><img src="img/%s"
        alt="%s" width="105" height="105" border="2" bordercolor="#000000"
        "/></a></td>',$catalo->image_princ->href, $catalo->image_princ->src,$catalo->image_princ->alt );
    echo "<td width='10'></td>";
    echo "<td>";
    printf('<p>%s polys</p>', $catalo->poly);
    printf('<p>%s vertices</p>', $catalo->vert);
    printf('<p>Price  : <strong> %s €</strong></p>', $catalo->prix);
       
      echo "</td></tr>";
  if( $i % 2 == 0 ) // toutes les deux cases
       echo "</tr><tr>"; // nouvelle ligne
  $i++;
    }
    echo "</tr></table>";
     
} else {
  exit('Failed to open catalos_1.xml.');
}
?>

#4 Re : Forum Général PHP » organiser un xml par colonnes. » 25-04-2011 21:04:06

je crois que je viens de capter mon erreur les td sont contenus dans les tr et pas l'inverse.

#5 Re : Forum Général PHP » organiser un xml par colonnes. » 25-04-2011 21:04:06

ok j'ai bien compris le conditionnement par numero mais maintenant j'ai un autre probleme qui se pose:
je n'arrive pas a imbriquer des colonnes dans des lignes

explication:
je voudrais une ligne de 300 pour le titre, en dessous une ligne contenant 2 colonnes, la premiere l'image et la deuxieme la description de l'objet.

  <tr>
    <td colspan="4" rowspan="3"><?php  
if (file_exists('beastcart.xml')) {
  $xml = simplexml_load_file('beastcart.xml');
 
  $catalos = ($xml->catalo);
  $i = 1;
  echo "<table><tr width='900'>";
 
  foreach ($catalos as $catalo) {
   
    echo "<td width ='300'><tr width='300'>"; // une colonne
      echo "<p class='style1'><strong>$i";
      printf('- %s</strong></p></tr>', $catalo->nom);
    echo "<tr width='300'><td width='109'>";
   
      printf('<a href="%s"><img src="img/%s"
        alt="%s" width="105" height="105" border="2" bordercolor="#000000"
        "/></a></td>',$catalo->image_princ->href, $catalo->image_princ->src,$catalo->image_princ->alt );
   
    echo "<td width='109'>";
    printf('<p>%s polys</p>', $catalo->poly);
    printf('<p>%s vertices</p>', $catalo->vert);
    printf('<p>Price  : <strong> %s €</strong></p>', $catalo->prix);
       
      echo "  </td></tr>";
  if( $i % 2 == 0 ) // toutes les deux cases
       echo "</tr><tr>"; // nouvelle ligne
  $i++;
   
    /*

si l'agencement semble logique je l'ecris, en revanche le resultat correspond pas.
les balises dans les balises sont mises aleatoirement dans ma page, bref un gros bordel !

#7 Re : Forum Général PHP » organiser un xml par colonnes. » 25-04-2011 21:04:06

je peux faire plein de chose mais ca faudrais d'abord que je sache comment le faire ...

#8 Re : Forum Général PHP » organiser un xml par colonnes. » 25-04-2011 21:04:06

ok,
voila en gros le contenu de la cellule centrale:

<tr>
    <td width="10"></td>
    <td width="642"><table width="300" height="94" border="0" align="center" cellpadding="0" cellspacing="0" >
      <?php  
if (file_exists('beastcart.xml')) {
  $xml = simplexml_load_file('beastcart.xml');
 
  $catalos = ($xml->catalo);
 
  foreach ($catalos as $catalo) {
 
   
    echo "<tr width='300'>\n<td>";
    printf('<p class="style1"><strong>%s</strong></p>', $catalo->nom);
    echo "</tr><tr>\n<td width='109'>";
    printf('<a href="%s"><img src="img/%s"
        alt="%s" width="105" height="105" border="2" bordercolor="#000000"
        "/></a>'
,$catalo->image_princ->href, $catalo->image_princ->src,$catalo->image_princ->alt );
   
    echo "</td>\n<td width='10'>\n</td> <td width='191'>";
    printf('<p>%s polys</p>', $catalo->poly);
    printf('<p>%s vertices</p>', $catalo->vert);
    printf('<p>Price  : <strong> %s €</strong></p>', $catalo->prix);
    echo "</td>\n</tr>";
    echo "<tr>\n</tr>";
   
  }
} else {
  exit('Failed to open catalos_1.xml.');
}
?>
                        </table></td>
                        <td width="642"><table width="300" height="94" border="0" align="center" cellpadding="0" cellspacing="0" >
      <?php  
if (file_exists('beastcart.xml')) {
  $xml = simplexml_load_file('beastcart.xml');
 
  $catalos = ($xml->catalo);
 
  foreach ($catalos as $catalo) {
 
   
    echo "<tr width='300'>\n<td>";
    printf('<p class="style1"><strong>%s</strong></p>', $catalo->nom);
    echo "</tr><tr>\n<td width='109'>";
    printf('<a href="%s"><img src="img/%s"
        alt="%s" width="105" height="105" border="2" bordercolor="#000000"
        "/></a>'
,$catalo->image_princ->href, $catalo->image_princ->src,$catalo->image_princ->alt );
   
    echo "</td>\n<td width='10'>\n</td> <td width='191'>";
    printf('<p>%s polys</p>', $catalo->poly);
    printf('<p>%s vertices</p>', $catalo->vert);
    printf('<p>Price  : <strong> %s €</strong></p>', $catalo->prix);
    echo "</td>\n</tr>";
    echo "<tr>\n</tr>";
   
  }
} else {
  exit('Failed to open catalos_1.xml.');
}
?>
                        </table></td>
  </tr>

#9 Forum Général PHP » organiser un xml par colonnes. » 25-04-2011 21:04:06

blackant
Réponses : 17

Bonjour,

je débute en programmation, j'ai quelques bases, mais je n'ai aucun talent pour la prog.
bref,
je réalise un site e-commerce, et pour afficher les objets à vendre, j'aimerais pouvoir afficher le contenu de mon XML sur 2 voir 3 colonnes.
le problème c'est que je ne sais pas comment faire et que pour le moment la seule chose que j'ai réussie à faire c'est de dupliquer la première colonne dans la deuxième !
le mieux est de vous montrer en direct:
http://blackantmaster.com/Store/BeastCartoon.php

la mise en page est bonne mais pas le contenu.

#10 Re : Forum Général PHP » creer un panier ou cadie virtuel » 23-11-2010 23:53:58

ca ne marche pas il me sort une erreur :
Parse error: syntax error, unexpected T_VARIABLE in /homez.20/espacelo/www/Pages/panier.php5 on line 19

ce qui correspond a cette ligne:
$select = 'SELECT reference,nom, description, prix,livraison from tableproduit where reference in ('.implode(',',array_key($_SESSION['panier']).')';

et je n'arrive pas a mettre le doigt dessus

#11 Forum Général PHP » creer un panier ou cadie virtuel » 23-11-2010 23:53:58

blackant
Réponses : 3

bonjour,
apres avoir créé un catalogue depuis une base de données, j'aimerais creer un panier pour que le client puisse choisir ce qu'il veut.
j'ai trouvé pleins de tutos mais tous sont tres mal expliqué et ne montre q'un exemple mais n'explique pas ce qui m'interresse.

lien vers le catalogue en travaux
j'ai copié session_start(); en haut de chacune de mes pages

apres je suis perdu.^^'

j'ai créé une page 'panier' a l'interrieur de laquelle j'ai rentré ca:

<?
//initialisation ou continution de la session
session_start();

//verification du panier
if (!isset ($_SESSION[['panier']))
 //initilisation du panier
$_SESSION['panier'] = array();
//rangement
$_SESSION['panier'] ['IDBDD'] = array();
$_SESSION['panier'] ['Quantite'] = array();
$_SESSION['panier'] ['prix'] = array();
$_SESSION['panier'] ['Nom'] = array();
$_SESSION['panier'] ['Reference'] = array();
$_SESSION['panier'] ['Fraisport'] = array();

//ajout de l'article
array_push($_SESSION['panier']['']
?>

<table width="600" border="1" align="center" bordercolor="#999966">
  <tr>
    <td width="369" height="104" bordercolor="#FF9900" bgcolor="#6699FF"><table width="600" border="0">
      <tr>
        <td width="100" rowspan="3"><img src=<?php echo $donnees['image']; ?> /></td>
        <td width="230"><?php echo $donnees['Nom']; ?></td>
        <td width="64"><label></label></td>
        <td width="157"><div align="right">Quantité: </div></td>
        <td width="6"><input type="int" onclick="cancelBuble()" name="Quantite" value="1" size="1" maxlength="1" method="post" /></td>
        <td width="17"><?php echo $Quantite['Quantite']; ?></td>
      </tr>
      <tr>
        <td> </td>
        <td width="64"><div align="right"></div></td>
        <td><div align="right">prix: </div></td>
        <td colspan="2"><?php echo $donnees['prix']; ?> €</td>
      </tr>
      <tr>
        <td>réf: <?php echo $donnees['Reference']; ?></td>
        <td><div align="right"></div></td>
        <td><div align="right">+<?php echo $donnees['Fraisport']; ?> € de frais de port</div></td>
        <td colspan="2"><div align="right"><a href="panier.php5?action=ajout&l=LIBELLEPRODUIT&q=QUANTITEPRODUIT&p=PRIXPRODUIT" onclick="window.open(this.href, '',
'toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=yes, copyhistory=no, width=600, height=350'); return false;"><img src="../images/cadi.png" alt="ajouter au cadi" width="24" height="22" /></a></div></td>
      </tr>
      <a href="panier.php5?action=ajout&l=LIBELLEPRODUIT&q=QUANTITEPRODUIT&p=PRIXPRODUIT" onclick="window.open(this.href, '',
'toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=yes, copyhistory=no, width=600, height=350'); return false;"> </a>
    </table></td>
    <?php
}

$reponse->closeCursor(); // Termine le traitement de la requête


?>
  </tr>
</table>

ce que j'aimerais c'est que mes articles se mettent en page suivant le meme shema que sur la page du catalogue et dans les tutos c'est juste un array d'un article exemple donc je ne sais pas comment faire.

en plus sur la page du catalogue, j'aimerais que le bouton ajouter au cadi ajoute l'article mais ca ne fonctionne  pas.

pleaze help

#12 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

bon, je commence a comprendre un peu mieux certains details mais la j'ai un petit soucis au niveau de la syntaxe.
je m'explique:

dans la boucle while, je demande a php de recuperer tout de la bdd.
elle affiche les infos et a chaque objet un bouton "ajouter au cadi".
ce dernier dois donc contenir un lien different pour chaque objet donc je souhaite ajouter l'id de l'objet (et c'est la que ca se complique, j'ai éssayé differentes manieres de l'ecrire mais non...)

   

<td colspan="2">
  <div align="right">
  <a href='Commande.php?prod=".$donnees['IDBDD']."'><img src="../images/cadi.png" alt="ajouter au cadi" width="24" height="22" /></a>
  </div>
    </td>

le probleme est sur cette partie: href='Commande.php?prod=".$donnees['IDBDD']."'
le lien ne m'affiches pas le numero mais le code.ou alors si je remplace ' par " il m'affiche rien

#13 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

au final j'ai trouvé trop de tutos sur comment creer un panier, mais je ne sais pas lequel suivre, ils sont tous a peu pret aussi mal expliqués les uns que les autres...

#14 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

bon pour le moment j'ai pas encore capté ton truc de  la session, j'y reviendrais plus tard (quand mon cerveau aura refroidi)

comment je dois faire pour creer un bouton "add to basket" qui soit inséré dans chaque tableau relatif a l'objet quand on clic dessus ?

je te mets le lien vers mon catalogue
http://www.espaceloisirs-56.com/Pages/BDD.php5

j'ai trouvé des scripts pour creer un panier mais il me retourne un message d'erreur.
Fatal error: Call to undefined function ajouterArticle() in /homez.20/espacelo/www/Pages/panier.php5 on line 37

ce qui donne:
  ajouterArticle($l,$q,$p);

   //récuperation des variables en POST ou GET
   $l = (isset($_POST['l'])? $_POST['l']:  (isset($_GET['l'])? $_GET['l']:null )) ;
   $p = (isset($_POST['p'])? $_POST['p']:  (isset($_GET['p'])? $_GET['p']:null )) ;
   $q = (isset($_POST['q'])? $_POST['q']:  (isset($_GET['q'])? $_GET['q']:null )) ;

#16 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

salut

merci pour les infos, c'est exactement ce que j'ai fais et ca fonctionne nikel!
par contee la ou je bloque maintenabt, c'est de faire varier le prix en fonction du nombre d'objets. c'est surement tres simple genr  $total sad$prix * $ quantite); sauf que j'ai essayé et que sa me retourne 0 ou le chiffre de la quantité, bref pas la bonne syntaxe^^.

http://www.espaceloisirs-56.com/Pages/BDD.php5

#17 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

moogli a écrit :

pourquoi remplacer une quote par une quote ? (ligne 86).
je pense qu'un htmlspecialchars_decode serait,peut être, plus indiqué pour ce que tu fait ?

je n'ai pas la moindre idée de l'utilité de ces quelques ligne !! mdr !
non globalement ca doit remplacer des caracteres speciaux, mais je m'en sert pas specialement.
d'ailleurs a ce propos, j'ai pas réussi a faire apparaitre le é dans le mail il apparait sous la forme A@ ou un truc dans le genre....

bref peu importe, l'essentiel c'est que ca fonctionne, je vais pouvoir m'attaquer au dis panier.

tu dis:

- pour le panier, soit tu met en session le panier soit tu créer une table mysql pour cela. en général la session suffit, il faut utiliser tableau du genre
$_SESSION['panier']['code article'] = quantité.

dans ce cas l'affichage se fait à partir du tableau de session et le calcul du prix avec mysql ou php comme tu veut.

alors ca veut dire quoi le mettre en session ?
je penses partir sur une bdd ca me parrait plus commode meme si jai jamais fais.

#19 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

non je fais du bricolage...
je suis graphiste a la base, j'ai aucun talent pour la programmation, si ce n'est que j'adapte le code deja existant et je modifies les parametres c'est tout.
je vais essayer de decripter ce que tu me racontes^^' ca semble evident mais je dois cogiter...

#20 Re : Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

alors, suite a ton message j'ai donc modifié mon code pour le mail.
ca marche, sauf que dans l'intitulé du message je souhaites recuperer les informations (nom, ville, code postal etc..) et que pour l'instant, je n'ai que le message tappé par le client.


[code =php]
<?php
    /*
        ********************************************************************************************
        CONFIGURATION
        ********************************************************************************************
    */
    // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
    $destinataire =' *******************************************************************************************@orange.fr';

    // copie ? (envoie une copie au visiteur)
    $copie = 'non'; // 'oui' ou 'non'

    // Messages de confirmation du mail
    $message_envoye = "Votre message nous est bien parvenu !";
    $message_non_envoye = "L'envoi du mail à échoué, veuillez réessayer SVP.";

    // Messages d'erreur du formulaire
    $message_erreur_formulaire = "Vous devez d'abord <a href=\"../Pages/Commande.php\">remplir le formulaire</a>.";
    $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

    /*
        ********************************************************************************************
        FIN DE LA CONFIGURATION
        ********************************************************************************************
    */

    // on teste si le formulaire a été soumis
    if (!isset($_POST['envoi']))
    {
        // formulaire non envoyé
        echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
    }
    else
    {
        /*
         * cette fonction sert à nettoyer et enregistrer un texte
         */
        function Rec($text)
        {
            $text = trim($text); // delete white spaces after & before text
            if (1 === get_magic_quotes_gpc())
            {
                $stripslashes = create_function('$txt', 'return stripslashes($txt);');
            }
            else
            {
                $stripslashes = create_function('$txt', 'return $txt;');
            }

            // magic quotes ?
            $text = $stripslashes($text);
            $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
            $text = nl2br($text);
            return $text;
        };

        /*
         * Cette fonction sert à vérifier la syntaxe d'un email
         */
        function IsEmail($email)
        {
            $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
            return (eregi($pattern,$email)) ? true : false;
        };

        // formulaire envoyé, on récupère tous les champs.
        $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
        $prenom  = (isset($_POST['prenom']))  ? Rec($_POST['prenom'])  : '';
        $Adresse1= (isset($_POST['Adresse1']))   ? Rec($_POST['Adresse1'])   : '';
        $Adresse2= (isset($_POST['Adresse2']))   ? Rec($_POST['Adresse2'])   : '';
        $codepostal=(isset($_POST['codepostal']))   ? Rec($_POST['codepostal'])   : '';
        $ville     = (isset($_POST['ville']))   ? Rec($_POST['ville'])   : '';
        $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
        $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
        $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

        // On va vérifier les variables et l'email ...
        $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

        if (($nom != '') && ($email != '') && ($ville != '') && ($Adresse1 != '') && ($codepostal != ''))
        {
            // les 4 variables sont remplies, on génère puis envoie le mail
            $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

            // envoyer une copie au visiteur ?
            if ($copie == 'oui')
            {
                $cible = $destinataire.','.$email;
            }
            else
            {
                $cible = $destinataire;
            };

            // Remplacement de certains caractères spéciaux
            $message = str_replace("'","'",$message);
            $message = str_replace("’","'",$message);
            $message = str_replace(""",'"',$message);
            $message = str_replace('<br>','',$message);
            $message = str_replace('<br />','',$message);
            $message = str_replace("<","<",$message);
            $message = str_replace(">",">",$message);
            $message = str_replace("&","&",$message);

            // Envoi du mail
            if (mail($cible, $objet, $message, $headers))
            {
                echo '<p>'.$message_envoye.'</p>'."\n";
            }
            else
            {
                echo '<p>'.$message_non_envoye.'</p>'."\n";
            };
        }
        else
        {
            // une des 3 variables (ou plus) est vide ...
            echo '<p>'.$message_formulaire_invalide.' <a href="../Pages/Commande.php">Retour au formulaire</a></p>'."\n";
        };
    }; // fin du if (!isset($_POST['envoi']))
?>[/code]
comment dois je m'y prendre pour integrer ces champs au corps du texte mesage ?
et aussi, je devrais surement m'y prendre de la meme maniere pour ajouter les choix fais sur le catalogue par le client ?

#21 Forum Général PHP » besoin d'aide pour programmer un tableau dynamique » 23-11-2010 15:39:54

blackant
Réponses : 15

bonjour a tous.

je n'ai pas beaucoup d'experience en programmation php et aujourd'hui je suis confronté a la réalisation  d'une galerie d'articles genre e-commerce, mais je n'ai pas toutes les connaissances pour le faire.

j'ai déja récupéré le travail du site sur lequel je dois poser cette galerie,
j'ai donc des elements inscrits sur des .xml, sur lesquels je dois ajouter un bouton ajouter a ma commande, et aussi la quantité.
(cette partie la je la verrais apres)

et une page qui affichera mon caddi , j'ai créé un formulaire car le client ne veux pas de commerce mais une commande par mail.
dans ce formulaire j'ai ajouté un tableau qui , je voudrais, devrais afficher les objets choisis par le client.

extrait du code:

<form method="post" action="mailto:[b]ATTENTION_AU_SPAM[/b].master@orange.fr?subject=commande Pieces espace loisirs" enctype="text/plain">
<table width="540" border="0" align="center">
  <tr>
    <td width="121"><div align="left">Désignation:</div></td>
    <td width="83"><div align="right">Prix:</div></td>
    <td width="133"><div align="right">Quantité:</div></td>
    <td width="20"> </td>
    <td width="80"><div align="right">Sous Total:</div></td>
    <td width="77"> </td>
  </tr>
  <tr>
    <td><div align="left"><?php $Design= $_POST[''] ?> </div></td>
    <td><div align="right"><?php $Prix= $_POST[''] ?></div></td>
    <td><div align="right"><?php $Qtit= $_POST[''] ?></div></td>
    <td> </td>
    <td><div align="right"><?php $Stotal= $_POST[''] ?></div></td>
    <td><div align="center"></div></td>
  </tr>
  <tr>
    <td> </td>
    <td> </td>
    <td> </td>
    <td> </td>
    <td><div align="right"></div></td>
    <td> </td>
  </tr>
  <tr>
    <td> </td>
    <td> </td>
    <td> </td>
    <td> </td>
    <td><div align="right"></div></td>
    <td> </td>
  </tr>
  <tr>
    <td> </td>
    <td> </td>
    <td><div align="right">Total:</div></td>
    <td> </td>
    <td colspan="2"><div align="center"><?php $Total= $_POST[''] ?></div></td>
  </tr>
</table>


  <table width="540" border="0" align="center">
  <tr>
    <td width="152"><div>
      <div align="left">continuer la commande</div>
    </div></td>
    <td width="232"> </td>
    <td width="134"><div align="right">envoyer</div></td>
  </tr>
</table>


</form>

suis je sur la bonne voix ? (ca m'etonnerais)

Pied de page des forums

Propulsé par FluxBB