7
votes

Comment faire ma variable PHP accessible?

J'essaie de mettre en œuvre une minuterie. J'ai appris cette idée d'un message alors.

     var days = <?php echo $remainingDay; ?>; 


7 commentaires

On dirait que vous devez renommer votre fichier sur quelque chose.php


Oui, mon nom de fichier est TestonLinetest.php


Si votre var jours = ... La ligne est dans un fichier JavaScript externe, cela ne fonctionnera pas car il ne fonctionne pas via l'analyseur PHP.


PHP fonctionne sur le Server , et alors le HTML et JavaScript résultant sont envoyés au navigateur client. Le navigateur rend alors le HTML et exécute le JavaScript; Le PHP est déjà fait, efficacement Gone , n'est plus "dans la page" au moment où le navigateur gère la page.


@Patrickevans j'ai mentionné que tous les scripts sont dans le même fichier


Alors qu'est-ce que cette ligne réelle ressemble à sa rendu à la page?


Un avis que j'ai mentionné est remplacé dans ce domaine


3 Réponses :


8
votes

Le problème est, car la charge initiale, $ _ POST code> ne sont pas peuplées (vides sur la première charge),

Cette variable que vous avez définie est indéfinie, assurez-vous simplement d'initialiser ce poing variable . P>

<?php
// initialize
$remainingDay = 1;
if(($_SERVER['REQUEST_METHOD'] === 'POST') && !empty($_POST['username']))
{
    //secondsDiff is declared here
    $remainingDay     = floor($secondsDiff/60/60/24);
    echo json_encode(array('remaining_day' => $remainingDay);
    exit;
}
?>

<script>
var days = <?php echo $remainingDay; ?>;
$('.your_button').on('click', function(){
    $.ajax({
        url: 'something.php',
        dataType: 'JSON',
        type: 'POST',
        beforeSend: function() {
            // whatever processes you need
        },
        success: function(response) {
            alert(response.remaining_day);
        }
    });
});
</script>


5 commentaires

Oui merci. Laissez-moi vérifier cela.


@Gopsab Il suffit d'utiliser document.url ou du code carré de l'URL si vous le souhaitez.


@Gopsab Bien que je suggère de ne pas aller à cet itinéraire, vos codes vont être encombrés, il suffit de séparer la page PHP qui gère la demande que vous avez envoyée de JS, à partir de la réponse que vous devez faire.


@Gopsab car il n'y a pas de contexte pour aller à une plus grande échelle que ce var jours = est nécessaire pour, pourquoi ne pas l'initialiser dans JS à la place? Avez-vous vraiment besoin de cette valeur provenant du PHP, vos codes (ou presque tous) utilisent-ils toujours de cette façon? (écho à des valeurs de PHP à l'intérieur de votre script JS et de vos trucs)


Laissez-nous Continuez cette discussion dans le chat .



2
votes

Essayez ceci,

var days = "<?php echo $remainingDay; ?>";


0 commentaires

2
votes

Vous pouvez passer une variable php code> dans js code> comme xxx pré>

Note: strong> P >

Si vous avez toujours voulu transmettre un JSON_CO> Valeur CODE> JSON TO JS CODE>, vous pouvez faire P>

var jsonVariable = <?php echo $json_encoded_value ?>; //Note that there is no need for quotes here


0 commentaires