[RESOLU] Condition php pour exécuter du code Javascript

Eléphanteau du PHP | 22 Messages

02 oct. 2016, 00:41

Bonjour à tous,

J'aimerais lorsqu'une variable passée dans l'url existe executé du code javascript.. Hélas rien ne fonctionne.
Voici mon code :
<script type="text/javascript">
function jsfunction_msg(){
      document.getElementById('click_to_msg').click();
}

</script>
<?php if(!empty($_GET['r'])){ 
    echo '<script type="text/javascript">',
     'jsfunction_msg();',
     '</script>' ;
 }?>
Voila si quelqu'un à une piste je suis preneur, merci à tous et bonne soirée :)

Mammouth du PHP | 2703 Messages

02 oct. 2016, 14:07

quel est le code généré par le php selon le paramètre GET r ?
que dit la console du navigateur ?

Eléphanteau du PHP | 22 Messages

02 oct. 2016, 16:11

La console dit :
Uncaught TypeError: Cannot read property 'click' of null

Merci pour ta reponse

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 oct. 2016, 16:15

Bonjour,

Ce message signifie qu'au moment où tu fais appel à la fonction jsfunction_msg(), aucun élément de ta page n'a pour id 'click_to_msg'.
Le navigateur ne peut donc pas exécuter la fonction click() d'un élément qui est null.

Il faut t'assurer que ton appel javascript à la fonction se fait après que l'élément 'click_to_msg' ait été envoyé au navigateur par ton code. Dans l'idéal il ne faudrait appeler ta fonction qu'une fois que ta page est chargée pour être sur que tous les éléments html sont présents :)

En gros, il faut que dans le code de ta page tu affiches l'élément ET la fonction javascript AVANT de faire appel à cette dernière.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...