IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Recharger une portion de code php sous symfony


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Par défaut Recharger une portion de code php sous symfony
    Bonjour,

    J'ai créé un formulaire Annonce je voudrais ajouter jusqu'à n photos à mon annonce. Pour l'instant je ne peux que charger une photo. Donc j'ai pensé à intégrer AJAX et recharger cette partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <?php foreach ($form['newPhotos'] as $photo): ?>
          <?php echo $photo['caption']->renderRow() ?>
          <?php echo $photo['filename']->renderRow() ?>
          <?php endforeach; ?>
    et bien sur un petit lien quand je clique de dessus ça doit me sortir la petite partie du code pour charger une nouvelle photo.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <a href="#" onclick="envoieRequete('centre');" >test</a>
    J'ai fait un code javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <script type="text/javascript">
    function envoieRequete(id)
    {
        alert('coucou');
     
     
    	// On ouvre la requete vers la page désirée
     
    	var e = document.createElement("div" );
        var f = document.createTextNode(<?php //rajouter ici mes balises php ou une réference vers cette portion de code;  ?> );
     
        e.appendChild(f);
        document.getElementById('id').appendChild(e);
     
    }
    </script>
    <style>

    En gros la question c'est comment je fais pour exécuter cette portion de code sachant que je ne peux pas passer la variable $form au javascript pour rappeler une nouvelle balise php qui contient la même portion du code dans le javascript.



    Merci d'avance pour votre aide.

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Citation Envoyé par fastone650 Voir le message
    [...]Donc j'ai pensé à intégrer AJAX et recharger cette partie du code [...]
    Hé bien justement, pourquoi ne fais-tu pas ton traitement avec un appel AJAX ? La bibliothèque jQuery sera ton amie, ainsi que le tutoriel Jobeet.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Par défaut
    Merci pour ta réponse. Justement j'utilise du AJAX pas que javascript si tu regarde bien . Quelqu'un a une idée plus précise ?

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je ne sais pas trop pourquoi, mais il me semble que tu essaies de transformer une chose simple (affichage d'un formulaire avec plusieurs photos jointes) en un truc abominablement compliqué.

    Pourquoi diantre veux-tu mettres du JS pour cela ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Par défaut
    Merci Micheal en fait désolé si j'ai mal expliqué mais en gros c'est que j'ai un formulaire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    <?php use_stylesheets_for_form($form) ?>
     
    <?php use_javascript('jquery-1.4.4.min.js') ?> 
    <?php use_javascript('/sfJqueryReloadedPlugin/js/jquery-1.3.2.min.js'); ?>
     
    <script type="text/javascript">
    $(document).ready(function(){
      $("#annonce_Departement_id").hide();
     
      $("#annonce_Region_id").change( function() {
         $("#annonce_Departement_id").show();
    	$.post('<?php echo url_for('@ajax_departement') ?>', { region: $(this).val() },
        	function(data){
          $("#annonce_Departement_id").html(data);
        });
      });
    });
    </script>
    <script type="text/javascript">
    function envoieRequete(url,id)
    {
    	var xhr_object = null;
    	var position = id;
    	   if(window.XMLHttpRequest)  xhr_object = new XMLHttpRequest();
    	  else
    	    if (window.ActiveXObject)  xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
     
    	// On ouvre la requete vers la page désirée
    	xhr_object.open("GET", url, true);
    	xhr_object.onreadystatechange = function(){
    	if ( xhr_object.readyState == 4 )
    	{
    		// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
    		document.getElementById(position).innerHTML = xhr_object.responseText;
    	}
    	}
    	// dans le cas du get
    	xhr_object.send(null);
     
    }
    </script>
    <style>
    iframe {border-width: 0px;height: 60px;width: 400px;}
    iframe.hidden {visibility: hidden;width:0px;height:0px;}
    #main1 {overflow: hidden;margin: auto;width: 90%;height: 420px;border-style: solid;border-width: 1px;background-color: white;}
    #images1 {width: 95%;height: auto;margin: 20px;}
    #images1 div {margin: 10px;width: 130px;height: 130px;border-style: solid;border-width: 2px;border-color: #DEDFDE;float: left;overflow: hidden;}
    #images1 div:hover {border-color: #D8F18C;}
    #images1 img.load { margin-top:20px;}
    .blacklink:link, .blacklink:alink, .blacklink:vlink, .blacklink:hover{color:#000000}
    a.redlink{color: #96001C; text-decoration: none}
    a:hover.redlink{color: #96001C; text-decoration: underline}
    </style>
     
    <?php use_javascripts_for_form($form) ?>
    <?php echo form_tag_for($form, '@ads') ?>  
      <table id="job_form">
        <tfoot>
          <tr>
            <td colspan="2">
              <input type="submit" value=" Valider " />
            </td>
          </tr>
        </tfoot>
        <tbody>
          <?php echo $form['Categorie_id']->renderRow() ?>
     
          <?php echo $form['Region_id']->renderRow() ?>
    	  <?php echo $form['Departement_id']->renderRow() ?> 
     
    	  <?php //echo $form['Region']['Name']->renderRow() ?> <?php //bug ?>
     
    	  <?php echo $form['CodePostal']->renderRow() ?>
    	  <?php echo $form['Ville']->renderRow() ?>
    	  <?php echo $form['TypeAnnonce']->renderRow() ?>
    	  <?php echo $form['TitreAnnonce']->renderRow() ?>
    	  <?php echo $form['TexteAnnonce']->renderRow() ?>
     
    	  <?php echo $form['Prix']->renderRow() ?>
    	  <?php echo $form['PhotoPrincipale']->renderRow(array('width' => 100)) ?>
    	  <?php echo $form->renderHiddenFields() ?>
     
    	  <?php foreach ($form['newPhotos'] as $photo): ?>
          <?php echo $photo['caption']->renderRow() ?>
          <?php echo $photo['filename']->renderRow() ?>
          <?php endforeach; ?>
     
    	  <?php foreach ($form['Photos'] as $photo): ?>
    	  <?php echo $photo['caption']->renderRow() ?>
    	  <?php echo $photo['filename']->renderRow(array('width' => 100)) ?>
    	  <?php endforeach; ?>
     
    	  <?php //echo $form ?>
     
    	  <div id="centre">
     
     
    	  </div>
     
     
        </tbody>
      </table>
     
      <a href="#" onclick="envoieRequete('<?php echo url_for('@photos') ?>','centre');" >test</a>
     
    </form>
    Et je ne peux charger q'une seule photo mais j'aimerais appuyer sur un bouton ou un lien par exemple "Upload more photos"

    Pour afficher un autre input de la nouvelle photo. Du coup j'ai compris qu'il fallait utiliser AJAX pour ça c'est ce que j'essaie de faire.


    Sinon t'as quelque chose de mieux à me proposer ?

    Merci

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    J'ai survolé le code mais pas trop de temps là. Le mélange dans un fichier de html, css et js ne me semble pas idéal mais peu marcher.

    Je ne suis pas sur de comprendre ce que tu entends par charger plusieurs photos. Tu veux les afficher sur le site ou permettre à un utilisateur de uploader des photos sur le serveur ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Par défaut
    En fait j'ai un formulaire Annonce et chaque utilisateur peut ajouter de 1 à n photos.
    Bien entendu j'ai une table photos pour les stocker.

    Je voudrais faire un upload Multiple d'images comme sur l'exemple suivant :

    http://digitarald.de/project/fancyup...se/photoqueue/

    Sauf que ceci n'est pas prévu pour symfony donc quasi impossible de les intégrer dans mon code.

    Pour l'instant je ne peux rajouter qu'une seule photo si je laisse le code comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?php use_stylesheets_for_form($form) ?>
     
    <?php use_javascript('jquery-1.4.4.min.js') ?> 
    <?php use_javascript('/sfJqueryReloadedPlugin/js/jquery-1.3.2.min.js'); ?>
     
    <script type="text/javascript">
    $(document).ready(function(){
      $("#annonce_Departement_id").hide();
     
      $("#annonce_Region_id").change( function() {
         $("#annonce_Departement_id").show();
    	$.post('<?php echo url_for('@ajax_departement') ?>', { region: $(this).val() },
        	function(data){
          $("#annonce_Departement_id").html(data);
        });
      });
    });
    </script>
     
    <?php use_javascripts_for_form($form) ?>
    <?php echo form_tag_for($form, '@ads') ?>  
      <table id="job_form">
        <tfoot>
          <tr>
            <td colspan="2">
              <input type="submit" value="Preview your ad" />
            </td>
          </tr>
        </tfoot>
        <tbody>
          <?php echo $form['Categorie_id']->renderRow() ?>
     
          <?php echo $form['Region_id']->renderRow() ?>
    	  <?php echo $form['Departement_id']->renderRow() ?> 
     
    	  <?php //echo $form['Region']['Name']->renderRow() ?> <?php //bug ?>
     
    	  <?php echo $form['CodePostal']->renderRow() ?>
    	  <?php echo $form['Ville']->renderRow() ?>
    	  <?php echo $form['TypeAnnonce']->renderRow() ?>
    	  <?php echo $form['TitreAnnonce']->renderRow() ?>
    	  <?php echo $form['TexteAnnonce']->renderRow() ?>
    	  <?php echo $form['Prix']->renderRow() ?>
    	  <?php echo $form['PhotoPrincipale']->renderRow(array('width' => 100)) ?>
    	  <?php echo $form->renderHiddenFields() ?>
     
    	  <?php foreach ($form['newPhotos'] as $photo): ?>
          <?php echo $photo['caption']->renderRow() ?>
          <?php echo $photo['filename']->renderRow() ?>
          <?php endforeach; ?>
    	  <?php foreach ($form['Photos'] as $photo): ?>
    	  <?php echo $photo['caption']->renderRow() ?>
    	  <?php echo $photo['filename']->renderRow(array('width' => 100)) ?>
    	  <?php endforeach; ?>
     
        </tbody>
      </table>
    </form>


    Merci.

  8. #8
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Regarde dans les plugin, dans mes souvenirs il y en a un qui fait cela spécifiquement.

    Si non, tu en as un pour gérer les formulaire embeded qui pourrait te simplifier la vie.

    Si tu tiens à passer par du JS, il faudrait voir sur le site de jquery s'il n'y a pas un plugin qui gère ce type de problème.

    Pourquoi réinventer la roue ?

Discussions similaires

  1. tester d'une portion de code
    Par Ashen-Shugar dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/04/2008, 13h07
  2. Réponses: 3
    Dernier message: 22/01/2008, 08h58
  3. Executer une portion de code uniquement si le javascript est actif
    Par Rakken dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/04/2007, 10h23
  4. [java.lang.class] Votre avis sur une portion de code
    Par be_tnt dans le forum Langage
    Réponses: 3
    Dernier message: 18/10/2006, 16h55
  5. gestion d'erreur resume next sur une portion de code
    Par aarlock dans le forum Access
    Réponses: 2
    Dernier message: 02/06/2006, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo