J'ai une liste de liste de cases à cocher avec le nom des fichiers provenant de DB. Ensuite, j'ai un bouton pour supprimer les fichiers. J'ai le code suivant pour le bouton:

<input type='button' id='submit_btn' onclick='eraseFile()'  value='DELETE FILES' />

Et la fonction eraseFile ...

<script type="text/javascript" language="javascript">
function eraseFile(){
    var checekedFiles = [];

    $('input:checked').each(function() {
        checekedFiles.push($(this).val());
    });

    alert(checekedFiles); // it gives me all the checked values..good

    <?php
        echo "HElllo World";
    ?>
}
</script>

Il donne une erreur «manquant; avant l'instruction» et «eraseFile n'est pas défini»

Est-il possible d'écrire du php à l'intérieur de javascript?

1
saomi 31 oct. 2011 à 21:43

7 réponses

Meilleure réponse

Essayez de faire écho à un code javascript significatif, "Hello World" ce n'est pas une instruction JS valide.

Essayez quelque chose comme

<?php
    echo "alert('HElllo World');";
?>
1
Davide 31 oct. 2011 à 17:49

Oui, il est possible d'inclure PHP dans JavaScript, car le PHP sera exécuté sur le serveur avant que le contenu de la page ne soit envoyé au client. Cependant, dans votre cas, ce qui est envoyé est le suivant:

<script type="text/javascript" language="javascript">
function eraseFile(){
    var checekedFiles = [];

    $('input:checked').each(function() {
        checekedFiles.push($(this).val());
    });

    alert(checekedFiles); // it gives me all the checked values..good

    HElllo World
}
</script>

Cela ne valide pas en tant que JavaScript, car le "Helllo World" n'est pas une commande JavaScript valide. C'est pourquoi la fonction n'est pas définie correctement. Vous devez remplacer la chaîne "Helllo World" par une commande JavaScript réelle.

0
Rsaesha 31 oct. 2011 à 17:50

Oui c'est possible.

PHP est analysé sur le serveur, vous allez donc littéralement imprimer "HElllo World" dans votre fonction javascript, ce qui provoquerait probablement une erreur.

Vous cherchez peut-être à effectuer les opérations suivantes:

<?php echo 'document.write("Hello World!");'; ?>
2
Derek 31 oct. 2011 à 17:46

Est-il possible d'écrire du php à l'intérieur de javascript?

À moins que le code PHP ne génère du JavaScript valide, alors non.

La raison pour laquelle eraseFile est appelée undefined est que votre instruction echo provoque une erreur de syntaxe car elle imprime le littéral de chaîne Hellllo World à la fin de la fonction JavaScript qui viole les règles de syntaxe JavaScript.

3
Mike Thomsen 31 oct. 2011 à 17:46

Votre sortie PHP est ajoutée à votre fonction JS, ce qui fait que votre javascript ressemble à ceci:

<script type="text/javascript" language="javascript">
function eraseFile(){
    var checekedFiles = [];

    $('input:checked').each(function() {
        checekedFiles.push($(this).val());
    });

    alert(checekedFiles); // it gives me all the checked values..good

    HElllo World //syntax error here
}
</script>

Tu peux le faire:

<script type="text/javascript" language="javascript">
function eraseFile(){
    var checekedFiles = [];

    $('input:checked').each(function() {
        checekedFiles.push($(this).val());
    });

    alert(checekedFiles); // it gives me all the checked values..good

    alert("<?php echo "HElllo World"; ?>");
}
</script>

Cela donnera un pop-up disant "Bonjour tout le monde"

Pour passer une valeur de votre fonction Javascript à votre script PHP, vous pouvez le faire:

var yourJsVar = {assign value here};

url = "yourPHPScript.php?value=" + yourJsVar;
if (window.XMLHttpRequest) 
{ // Non-IE browsers 
  req = new XMLHttpRequest(); 
  req.onreadystatechange = someFunction;  
  //someFunction will get called when the PHP script is done executing
  try 
  { 
    req.open("GET", url, true); 
  } 
  catch (e) 
  { 
    alert(e); 
  } 
  req.send(null); 
} 
else if (window.ActiveXObject) 
{ // IE 
  req = new ActiveXObject("Microsoft.XMLHTTP"); 
  if (req) 
  { 
    req.onreadystatechange = someFunction; 
    req.open("GET", url, true); 
    req.send();                                 
  } 
} 

Dans votre script PHP:

$yourPhpVar = $_GET['value'];

J'ai mentionné someFunction ci-dessus qui est appelé une fois l'exécution du script PHP terminée. Voilà à quoi cela devrait ressembler. (Notez que c'est sur votre Javascript)

function someFunction()
{
    if(req.readyState == 4 && req.status == 200)
    {
        //this will only execute after your AJAX call has completed.
        //any output sent by your PHP script can be accessed here like this:

        alert(req.responseText);
    }
}
2
xbonez 31 oct. 2011 à 18:26

Oui, vous pouvez utiliser du code PHP dans vos fichiers de script, mais votre code génère ici du code de script non valide.

<?php
    echo "HElllo World";  // becomes: HElllo World (text!) in JS
?>
1
Smamatti 31 oct. 2011 à 17:47

Il est possible d'écrire PHP en Javascript, mais ce n'est pas la meilleure pratique. La façon dont nous le faisons normalement est via AJAX lire la documentation: http://api.jquery.com/category / ajax /

0
David Laberge 31 oct. 2011 à 17:47