2009-09-14 7 views
1

Je veux faire des remplacements innerHTML, mais en utilisant PHP comprend, je ne comprends pas comment. J'ai fait des remplacements innerHTML avant, mais pas avec PHP.innerHTML et PHP

je:

var xmlHttp 

function DisplayAerialProductListing() 
{ 
    var strStartCode="<p></p>"; 
    document.getElementById("txtData").innerHTML= strStartCode; 

    var code=""; 
    code = code + "<?php include 'newpage.inc'; ?>"; 
    document.getElementById("txtData").innerHTML= code; 
} 

J'ai la 'txtData' Div comme:

d'abord et je veux remplacer par le code de la .inc je mentionne. J'utilise .inc pour séparer des parties du site et pour rendre plus facile pour le concepteur de sorte qu'ils ne vont pas casser des choses!

Dans le .inc je viens d'avoir BONJOUR pour le moment.

Cela ne fonctionne pas. Quel est le truc?

Répondre

1

En utilisant jQuery, vous pouvez clouer que presque sans effort:

<p id="myParagraph"></p> 

<script> 
//when the DOM is ready 
$(document).ready(function() { 
    //replace contents of p id="myParagraph" with output of specified script 
    $('#myParagraph').load('myPage.php'); 
}); 
</script> 

encore, assurez-vous de comprendre la différence entre le client et le serveur selon la réponse de @ Dav.

Voir http://docs.jquery.com/Ajax

+0

@karmin - Merci pour l'exemple et la référence URl. Je pense que cela fonctionnera sacrément bien – user147502

3

PHP est traité côté serveur; Javascript est traité côté client. Vous ne pouvez pas insérer de code PHP via Javascript car vous avez déjà quitté le serveur. Normalement, ce que vous feriez est d'utiliser AJAX pour exécuter le code PHP sur le serveur, puis insérer les résultats dynamiquement dans la page.

+0

@Dav - pouvez-vous me donner un exemple sur la façon d'y parvenir? – user147502

+0

Ceci est un tutoriel AJAX décent: http://www.w3schools.com/Ajax/ajax_example.asp – Amber

+0

@Dav - Merci, cette information sera utile. – user147502

0

Cela fonctionnera tant que votre fichier JavaScript est analysé par PHP, ie. avec un .htaccess qui dit SetHandler application/x-httpd-php .js. Vous aurez envie d'échapper le texte à l'intérieur de l'include, donc il vaut mieux utiliser PHP file_get_contents() et addslashes(). Voici un exemple de super nettoyage d'une chaîne en PHP destinée à JavaScript: http://sixohthree.com/241/escaping

Une autre solution consisterait à charger le contenu de la page via XMLHttpRequest.

1
<script style="text/javascript" language="javascript"> 
<!-- 
function check_country() 
{ 
    var sel_country = document.getElementById("country"); 
    if(sel_country.value == "US") 
    { 
     <?php 
     $query = "SELECT stateName, stateAbbrev 
       FROM states 
       WHERE stateEnabled = '1' 
       ORDER BY stateName ASC"; 
     $result = mysql_query($query); 

     $prov = "<select name=\"state\" id=\"state\" class=\"widthed\">"; 

     while($row = mysql_fetch_row($result)) 
     { 
      $prov .= "<option value=\"$row[1]\">$row[0]</option>"; 
     } 
     $prov .= "</select>"; 
     ?> 

document.getElementById("tab1").rows[2].cells[3].innerHTML = "*State:"; 
document.getElementById("tab1").rows[3].cells[0].innerHTML = "*Zip Code:"; 
document.getElementById("tab1").rows[2].cells[4].innerHTML = <?php echo $prov; ?>; 
    } 
} 
--> 
</script> 
Questions connexes