2011-06-23 6 views
0

Comment est-ce que je pourrais faire ce travail? Je veux charger un fichier php comme ceci:Charger le fichier PHP avec document.createElement()

  • Cliquez sur le bouton.
  • Appelez la fonction Javascript.
  • Dans la fonction Javascript créer un img avec src file.php.

Ceci devrait forcer le chargement du php. Voici le code. Ensuite, dans savepages.php, je fais une autre alerte pour vérifier que le php est appelé et ce n'est pas le cas. Voici le fichier savepages.php.

<?php 
echo "alert('from the php');"; 
?> 

L'alerte du php ne se produit pas. Existe-t-il un type d'élément différent qui forcera le chargement du php? Je n'ai pas ajax installé, donc j'ai besoin d'une solution de contournement comme celle-ci.

Merci.

+2

Pourquoi et quel est votre objectif ultime? –

+0

Essayer d'appeler une alerte à l'intérieur de la source que vous fournissez pour une image ne fonctionnera pas. Si vous voulez juste une image, votre php doit définir les bons en-têtes et ne renvoyer que les données d'image. – scunliffe

+0

Qu'en est-il d'un iframe? – Martine

Répondre

0

trouvé la meilleure façon de gérer cela. Il y a ce code simple qui explique comment appeler une fonction javascript à partir d'un événement de formulaire et à partir de cette fonction javascript charger un fichier PHP. Le code trouvé à http://daniel.lorch.cc/docs/ajax_simple/ est également donnée ici:

<script type="text/javascript"> 
var http = false; 

if(navigator.appName == "Microsoft Internet Explorer") { 
    http = new ActiveXObject("Microsoft.XMLHTTP"); 
} else { 
    http = new XMLHttpRequest(); 
} 

function validate(user) { 
    http.abort(); 
    http.open("GET", "validate.php?name=" + user, true); 
    http.onreadystatechange=function() { 
    if(http.readyState == 4) { 
     document.getElementById('msg').innerHTML = http.responseText; 
    } 
    } 
    http.send(null); 
} 
</script> 

<h1>Please choose your username:</h1> 

<form> 
    <input type="text" onkeyup="validate(this.value)" /> 
    <div id="msg"></div> 
</form> 

validate.php

<?php 
function validate($name) { 
    if($name == '') { 
    return ''; 
    } 

    if(strlen($name) < 3) { 
    return "<span id=\"warn\">Username too short</span>\n"; 
    } 

    switch($name) { 
    case 'bob': 
    case 'jim': 
    case 'joe': 
    case 'carol': 
     return "<span id=\"warn\">Username already taken</span>\n"; 
    } 

    return "<span id=\"notice\">Username ok!</span>\n"; 
} 

echo validate(trim($_REQUEST['name'])); 
?> 
+0

L'autre option consiste à avoir le fichier PHP sous la forme action

...
. Le fichier savepages.php est appelé lorsque le formulaire est soumis. – Martine

0

Vous pouvez utiliser un élément iframe

<script type="text/javascript"> 
var d; 

function callSave() { 
alert ('calling'); 
if (d) document.body.removeChild(d); 
d = document.createElement("iframe"); 
d.src = "savepages.php"; 
document.body.appendChild(d); 
} 

</script> 
+0

Cela a du sens, mais cela n'appelle pas l'alerte php. – Martine

+0

On dirait qu'un iframe est plus approprié. Est-ce que quelqu'un sait quoi d'autre pourrait être mauvais avec ce code qui pourrait expliquer pourquoi le php n'est pas appelé. Je n'essaie plus de faire une alerte à partir de là. J'essaie seulement de faire un écho de texte. Le fichier savepages.php a maintenant: Martine

Questions connexes