Jump to content

HELP: Faire passer une variable smarty dans Jquery


Recommended Posts

Bonjour,
 
Je galère pour faire passer une variable smarty dans un script jquery:
 
Je veux récupérer la valeur qu'il y a dans <p class="test">{$content.id_msg}</p>
Cette variable est definit correctement dans le html et le foreach.
 
Dans le script je fais var idmsg = $(".test").val(); qui permet de recup ce qu'il y a a l'inteieur de la class test.
 
Mais malheureusement ça ne marche pas.
 
dans var dataString = '&idmsg' + idmsg;
 
si je fais var dataString = '&idmsg280' + idmsg;
 
280 étant le contenu de la variable smarty, mon script marche et le formulaire est bien passé.
 
Merci à ceux qui auront la gentillesse de m'aider.
 
 
Le js:

jQuery(function(){
 
        jQuery('.showSingle').click(function(){
        	var idmsg = $(".test").val();
        	var dataString = '&idmsg' + idmsg;
		
jQuery(
         '#div'+$(this).attr('target')).slideToggle("slow");
		
          $.ajax(
                {
		type: "POST",
		url: "chat/chat-update.php",
		data: dataString,
		success : function() {
                            $("#message").html("<p>Message bien envoyé</p>");
                        },
		error: function() {
                            $("#message").html("<p>Erreur d'appel, le message ne peut pas fonctionner</p>");
                        }
                }
       );
});
       
});

Le tpl:

{foreach from=$getinternalmessages key=k item=content name=content}
<form id="formcom2" action="#" method="POST">
  <div id="message"></div><br />
    <input type="hidden" name="idmsg" id="idmsg" value="{$content.id_msg}" />
  <p class="test">{$content.id_msg}</p>

     <button type="submit" name="boutonmsg"  class="button btn btn-default button-small"><span>marquer comme lu<i class="icon-chevron-right right"></i></span></button> 

</div>
</form>
{/foreach}
Link to comment
Share on other sites

rhooo, l'erreur de débutant ;)

 

var idmsg = $(".test").val();

.test signifie que tu as class="test" et récupérer la valeur d'une classe (il peut y en avoir plusieurs dans la page) est différent de récupérer la valeur d'un id (unique dans la page)

 

met plutot :

var idmsg = $("#idmsg").val();

Link to comment
Share on other sites

Après une bonne journée de galère, j'ai réussi a faire ce que je voulais !

 

1) Utilisation de la balise {literal} {/literal}

2) recuperation de la variable avec data

 var idmsg = jQuery(this).attr('data-idmsg');
{literal}

<script type="text/javascript">

    jQuery(document).ready(function() {
        jQuery(".msg_uniq").click(function() {

            var idmsg = jQuery(this).attr('data-idmsg');
            var dataString = '&idmsg=' + idmsg;

         
            jQuery.ajax({
                url: "chat/chat-update.php",
                type: "post",
                data: dataString,


                success: function(html) {
                },
                error: function() {
                }
            });
           
        });
    });
</script>
{/literal}

coté tpl:


{foreach from=$getinternalmessages key=k item=content name=content}

<div class="msg_uniq">
	<div class="row msg_uniq" data-idmsg="{$content.id_msg}">marquer comme lu
	</div>
</div>

 {/foreach}

Ce tuto m'a donné la réponse:

http://www.copier-coller.com/systeme-de-messagerie-en-php-sous-wordpress/

 

c'est au sujet d'une messagerie interne pour wordpress.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...