Bonsoir grafikart :)

Je suis le tuto sur la création d'un blog avec CakePhP j'en suis à la partie creation d'un article. Hier, quend je suis allé me couché tout fonctionné, j'arrivai à inserer des articles et meme appris à inserer la date de cration de l'article du moment avec le champs created grace au forum grafikart.
Aujourd'hui apres avoir rajouté des balises pour integrer mon design au formulaire ça ne fonctionne plus, j'ai beau chercher éplucher mon code quand j'ecris un article et que je fais envoyer, il ne se passe rien même pas de message d'erreur.
Je vous met le code desfois que l'erreur vous saute aux yeux :)

Edit.ctp

<?php
echo '<p>';
echo $form->create('Post', array('url' => array('action' => 'edit')));
echo $form->input('Post.titre', array('label' => 'Titre : '));
echo $form->input('Post.category_id', array('label' => 'Tag : ', 'options' => $cats));
echo '</p>';
echo '<p>';
echo $html->image("/theme/img/gras32.png");
echo $html->image("/theme/img/italic.png");
echo $html->image("/theme/img/underline32.png"); 
echo $html->image("/theme/img/code.png");
echo $html->image("/theme/img/rouge.png");
echo $html->image("/theme/img/vert.png");
echo $html->image("/theme/img/sourire.png");
echo $html->image("/theme/img/triste.png");
echo $form->input('Post.contenu', array('label' => false, 'rows' => 16, 'cols' => 75));
echo $form->end('envoyer');
echo '</p>';
?>

posts_controller.php

<?php
class PostsController extends AppController{

        var $paginate = array(
            'Post' => array(
                'limit' => 2,
                'order' => array(
                'Post.created' => 'Desc'
                )
            ));
        function index(){
            $q = $this->paginate('Post');
            $this->set('articles', $q);

        }
        function category($id){
            $q = $this->paginate('Post', array('Post.category_id' => $id));
            $this->set('articles', $q);
            $this->render('index');

        }
        function edit(){
            $c = $this->Post->category->find('list',array('recursive' => -1, 'fields' => array('id', 'titre')));
            $this->set('cats', $c);
            $this->layout='admin';
                if(!empty($this->data)){
                $this->Post->save($this->data);
                $this->flash('Votre post a bien été sauvegardé', '/posts');
                }
            }
            }
    ?>

et admin.ctp au cas où mais bon

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
        <?php echo $html->css('/theme/css/style.css'); ?>
        <script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <!--[if lt IE 9]>
            <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <title>Frienddblog</title>
    </head>
    <body>
    <div id="main_wraper">
    <div id="speedB">
        <ul class="speedB">
            <li class="inscrit">72 inscrits</li>
            <li>|</li>
            <li class="connecté">3 connectés</li>
            <li class="login">Connexion
            <div class="form_login">
                <form id="">
                          <p>
                          <label class="quick_log" for="pseudo">Pseudo :</label>
                          <input class="inputC" name="pseudo" id="pseudo" type="text" />  
                          <label class="quick_log" for="pwd">Mot de passe :</label>
                          <input class="inputC" name="pwd" id="pwd" type="password" />
                          <br />
                          <input class="sendC" type="submit" value="send" />
                          </p>
                </form>
            </div>
            </li>
        </ul>
    </div>
        <header>
            <div id="logo">
            </div>
            <div id="nav">
                 <ul>
                      <li><a href="inscription.html">S'inscrire</a><?php echo $html->image("/theme/img/inscrire32.png"); ?></li>
                      <li><a href="index.html">Home</a><?php echo $html->image("/theme/img/home32.png"); ?></li>
                      <li><a href="blog.html">Blog</a><?php echo $html->image("/theme/img/article32.png"); ?></li>
                      <li><a href="#">Login</a><?php echo $html->image("/theme/img/connexion32.png"); ?></li></li>
                 </ul>
            </div>
            <div id="sectionh"></div>
        </header>
        <div id="section">
            <div id="sectionG">
                <div id="formulaire">
                    <form id="newArticle">
                        <h3>Nouvel article</h3>
                        <p>
                        Remplissez correctement chaque champs avant de valider votre nouvel article 
                        </p>
                        <?php echo $content_for_layout; // affichage des articles voir index.ctp ?> 
                    </form>
                </div>          
            </div>
            <div id="sectionD">
                <ul>
                <?php 
                echo $html->link('Ajouter article', array('controller' => 'posts', 'action' => 'edit'));
                ?>
                </ul>
            </div>
        </div>
        <div id="footer">
            <div id="tags"><h3>TAGS</h3>
                <p>

                <?php $menu = $this->requestAction(array('controller' => 'Categories', 'action' =>'clist'));
                foreach($menu as $m):
                echo '<strong>'.$html->link($m'category']'titre'], 
                array('controller' => 'posts', 'action' => 'category',$m'category']'id'])).'()</strong>, ';
                endforeach;
                ?>

                </p>
            </div>
            <div id="last_comment"><h3>Derniers messages</h3><p>Bienvenue !, Ici je parle de mes dernieres trouvailles en programmation... </p></div>
            <div id="link"><h3>Liens</h3>
                <p><a href="www.siteduzero.com" title="le site du zéro">Le site du Zéro</a><br />
                   <a href="www.grafikart.com" title="le site du zéro">Grafikart</a><br />
                   <a href="www.developpez.com">Developpez.com</a></p>

            </div>
            <div id="social"><h3>Retrouvez moi sur :</h3><div id="imgsocial"><img src="facebook.png" alt="S'inscrire" />
                                                         <img src="twitter.png" alt="S'inscrire" />
                                                         <img src="google.png" alt="S'inscrire" /></div></div>
        </div>

    </div>
    <script src="js/formulaire.js"></script>
    <script src="js/click.js"></script>
    <script src="js/popup.js"></script>
    </body>
</html>

Voilà merci d'avance :)

3 réponses


tapesec
Auteur

Personne n'a une idée ? ça me désespère, si encore j'avais un message d'erreur mais j'ai vraiment rien, j'appuie sur envoyer ça me laisse sur la page après avoir passé dans l'url tous le contenu des champs de mes formulaires mais quand je vais regarder dans myadmin, il y a nada de plus.

Salut déjà j'ai trouvé plein de belles erreurs dans ton edit.ctp : ce n'est pas

$html->image("/theme/img/gras32.png");

mais plutôt :

$this->Html->image("theme/img/gras32.png");

Evidemment le répertoire theme est dans le répertoire img du webroot.
Fait moi signe si tu as des erreurs encore.

tapesec
Auteur

Heu ? j'ai pas mis $this pourtant ça marche et mon répertoire thème est dans webroot pas dans img/webroot et tout va bien de ce coté là.

Après, pour le problème j'ai finalement trouvé, dans mon admin.ctp j'ai crée un div form id="newArticle" (ligne 53) qui était le div de mon template pré création alors que le form->create en crée déjà un, du coup, dans le div que j'avais crée moi même dans admin ctp j'avais pas mis d'action ni method ça ne marchait forcément pas quel crétin.

Merci d'avoir fait l'effort de chercher à m'aider c'est simpa :)