2010-03-18 12 views
0

J'ai un plusieurs éléments de ce produit qui obtiennent leur classe et ID de PHP:Remplacer div html() en faisant écho PHP - comment?

$product1["codename"] = "product-1"; 
$product1["short"] = "Great Product 1"; 

$product2["codename"] = "product-2"; 
$product2["short"] = "Great Product 2"; 



<div class="leftMenuProductButton" id="'. $product1["codename"].'" >'. $product1["short"].'</div> 

<div class="leftMenuProductButton" id="'. $product2["codename"].'" >'. $product2["short"].'</div> 

Ces affichage:

<div class="leftMenuProductButton" id="product-1" > Great Product 1</div> 

<div class="leftMenuProductButton" id="product-2" > Great Product 2</div> 

Dans la page, j'ai un élément que je veux remplacer le HTML :

 <div id="productPopupTop"> 
     //Replace this content 
     </div> 

En utilisant jquery, je l'ai essayé ce qui suit:

$('.leftMenuProductButton').hover (
      function() { 

       var swapNAME = $(this).attr("id"); //gets the ID, #product-1, #product-2 etc. This works. 
       $("#productPopupTop").html(' <? echo $' + swapNAME + '["short"] ?>'); //This is supposed to get something like <? echo $product-1["short"] ?> This doesn't appear to work. 


      }, 
      function() { 
      //this is just here for later 

    }); 

Si je tente de faire une alert('<? echo $' + swapNAME + '["short"] ?>'); il affichera littéralement quelque chose comme <? echo $product-1["short"] ?>

S'il vous plaît noter que les deux Javascript et PHP sont liés à l'extérieur dans un fichier PHP (index.php < < < (de js.js, products.php)

QUESTION: Comment puis-je remplacer le code HTML() de #productPopupTop avec le ["short"] d'un produit? Si je devais utiliser Ajax, comment pourrais-je le coder?

+2

vous ne pouvez pas utiliser php et javascript ensemble de cette façon. php est évalué sur le serveur, javascript sur le client – knittl

+0

ok un peu de sens ... mais si je ne peux pas le faire de cette façon, alors * comment * devrais-je le faire? – Jared

Répondre

1

essayez ceci:

$('.leftMenuProductButton').hover (
      function() { 
       $("#productPopupTop").html($(this).html()); 


      }, 
      function() { 
      //this is just here for later 

    }); 
+0

C'est drôle ... trop simple! – Jared

1

Comme Knittl mentionné, php est un pré-processeur sur le serveur, et ne peut rien faire une fois que la page a été envoyée au client.

Les options que je peux penser sont

  1. stockons les informations produit en javascript sur le client (par exemple un tableau javascript qui est rempli avec php)

  2. Utilisez ajax pour interroger le serveur avec un nom de code et recevoir les données correspondantes (c'est-à-dire server.com/getshort.php?codename=product-2, qui répondrait avec Great Product 2).

Si le texte dans la balise est toujours le même, @ réponse de Kasia fonctionnera, et est plus simple.

Questions connexes