数週間前に作成したカスタム バックエンド モジュールで新しい機能を作成しようとしています。新しい機能は、特定の顧客からのいくつかのデータを「選択オプション」にリストするためにクエリを作成することにあります。次に、これらのオプションのいずれかを選択すると、オプションをキャッチし、GET
メソッドを使用して別の .php に送信し、php が選択したデータで何かを作成し、エコーを作成するスクリプトを作成しましたなんでもいい。
コードは次のとおりです ( data.phtml
)。
<script language="JavaScript" type="text/javascript">
function showPresu(str){
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
alert('nothing here');
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
alert('makes request');
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
alert('new object');
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","receiveselection.php?q="+str,true);
xmlhttp.send();
}
</script>
お気づきのように、コードがスクリプト内に入ることを確認するために、いくつかのアラートを作成しました。
選択/オプションは次のとおりです( data.phtml
):
echo '<select name="presus" onchange="showPresu(this.value)">';
for($n=1;$n<=$h; $n++){
echo "<option value='$status_id[$n]'>$status_id[$n]";
}
echo "</select>";
$status_id[$x]: 冒頭で紹介したいくつかのデータを含む配列です。
最終データを表示する必要がある div は ( data.phtml
) です。
<div id="txtHint">
<b>result info will be listed here.</b>
</div>
そして最後に、メソッド経由で送信した情報と対話する必要がある PHPGET
は (receiveselection.php
と同じフォルダーにありますdata.phtml
。この PHP は別のコードに変更されることに注意してください。つまり、次のコードを変更して別のクエリを作成します。 、しかし今はテストを行うのに問題ありません):
<?php
$q=$_GET["q"];
echo $q;
?>
唯一の問題は、そのために作成された div で「receiveselecton.php」を表示しようとすると、「receiveselection.php」の結果を見るのではなく、直前にいたのと同じ Magento ページが表示されることです ( data.phtml
) 、つまり、同じページが 2 回表示されます。1 つは「通常」として、もう 1 つはdiv
.
receiveselection.php
別の を作成する代わりにを呼び出す方法を知っている人はいますdata.phtml
か?
編集: このコードを magento の外に置くと動作しますが、内部では動作しません。だから問題は、私が知らないmagentoとの一貫性がないことかもしれません。もしくは良い方法を知っている方がいましたら教えてください。