2016-12-14 16 views
0

私がXMLHttpRequest経由で呼び出したPHPスクリプトは、クエリを実行して条件をチェックし、Smartyコードを含むHTMLスニペットを出力します。 jQuery.html()関数を呼び出すかinnerHTMLプロパティを設定して<div>タグにそのコードを挿入しようとすると、Smartyコードがそのまま出力され、Smartyコードとして解釈されません。どうすればこの問題を解決できますか?PHPスクリプトからSmarty形式のデータを取得

関連するコード:

PHPスクリプト:

<?php 
     $mysqli = new mysqli("localhost", "<<<SQL USERNAME>>>", "<<<SQL PASSWORD>>>", "<<<SQL DATABASE>>>"); 
     $id = $_GET["idmf"]; 
     $cat = $mysqli->query("<<<SQL QUERY>>>")->fetch_assoc()["category"]; 
     if ($cat == $_GET["cat"]) 
      echo 'blahblah'; 
?> 

TPLファイル:

{foreach from=$manufacturers item=manufacturer name=manufacturers} 
    <div id="mffilter_{$manufacturer.id_manufacturer}"></div> 
    <script> 

     var xhttpf; 
     if (window.XMLHttpRequest) 
     { 
      xhttpf = new XMLHttpRequest(); 
     } 
     else 
     { 
      // code for IE6, IE5 
      xhttpf = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xhttpf.onreadystatechange = function() 
     { 
      if (this.readyState == 4 && this.status == 200) 
      { 
       document.getElementById("mffilter_{$manufacturer.id_manufacturer}").innerHTML = this.responseText; 
      } 
     }; 
     xhttpf.open("GET", "<<<ENDPOINT>>>.php?cat=food&idmf={$manufacturer.id_manufacturer}", true); 
     xhttpf.send(); 

    </script> 
+0

Smartyのdoesnのそのように働く。エコーする前に、スマートでPHPスクリプト内の目的のHTMLを解析する必要があります。 Prestashopを使用している場合は、コントローラとdbアクセスメソッドを使用してajax呼び出しを行います。 – TheDrot

+0

@TheDrot何とかしてくれてもらえますか? – jinzo78

答えて

0

次のコードを使用してTPLファイルのコードを交換してみてください:

{foreach from=$manufacturers item=manufacturer name=manufacturers} 
    <div id="mffilter_"{$manufacturer.id_manufacturer}></div> 
    <script> 

     var xhttpf; 
     if (window.XMLHttpRequest) 
     { 
      xhttpf = new XMLHttpRequest(); 
     } 
     else 
     { 
      // code for IE6, IE5 
      xhttpf = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xhttpf.onreadystatechange = function() 
     { 
      if (this.readyState == 4 && this.status == 200) 
      { 
       document.getElementById("mffilter_"{$manufacturer.id_manufacturer}).innerHTML = this.responseText; 
      } 
     }; 
     xhttpf.open("GET", "<<<ENDPOINT>>>.php?cat=food&idmf="{$manufacturer.id_manufacturer}, true); 
     xhttpf.send(); 

    </script> 
関連する問題