-1

モジュールを初期化するために PHP から Javascript 関数を起動しようとしています。これが私のコードです:

<?php
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
$ParamArray[]='AdVisualV2jMODPHP_ver'; $ParamArray[]='0.3.0070'; // 000
$ParamArray[]='Station_ID'; $ParamArray[]=$params->get('Station_ID'); // 001
$ParamArray[]='Verbose'; $ParamArray[]=$params->get('Verbose'); // 002
$ParamArray[]='Bk_ColorODD'; $ParamArray[]=$params->get('Bk_ColorODD'); // 003
$ParamArray[]='Bk_ColorEVEN'; $ParamArray[]=$params->get('Bk_ColorEVEN'); // 004
$ParamArray[]='Ink_ColorODD'; $ParamArray[]=$params->get('Ink_ColorODD'); // 005
echo 'AVVIAMO LA PROCEDURA 0.0.095 - '.$Station_ID.'<br><br>';
echo '<div id="TabellaEventi"></div>';
$ParamArray = json_encode($ParamArray);
$ParamArray = htmlentities($ParamArray);
echo "<script language='javascript'>DisplayTable(0,15)</script>";
echo '<INPUT Type="BUTTON" VALUE="Avanti" ONCLICK="avanti('.$ParamArray.')"> ';
echo '<INPUT Type="BUTTON" VALUE="Indietro" ONCLICK="indietro('.$ParamArray.')"> ';
echo '<br>';
?>

<script>
Start = 0
Page = 15
// DisplayTable(Start,Page)

function avanti(Listaparametri) {
    Start=Start+Page+1
    DisplayTable(Start,Page)
}

function indietro(Listaparametri) {
    Start=Start-Page-1
    if (Start<0) {
        Start = 0
    }
    DisplayTable(Start,Page)
}

function DisplayTable(Inizio,Incremento) {
    xmlhttp=new XMLHttpRequest();
    xmlhttp.onreadystatechange=function()
        {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            Esito=xmlhttp.responseText;
            }
        }
    xmlhttp.open('GET','xxxxxxxxxxxxxxxx/name.php?Start='+Inizio+'&Page='+Incremento,false);
    xmlhttp.send();
    Esito='VISUALIZZAZIONE TABELLA<br>'+Esito+'<br><br>'
    document.getElementById('TabellaEventi').innerHTML=Esito;
}
</script>

ページがロードされ、DisplayTable JavaScript 関数を呼び出さなければならないとき、Uncaught Reference Error DISPLAYTABLE IS NOT DEFINED がコンソールで引き続き表示されますが、スクリプト Javascript セクションで // を削除すると完全に機能します。もちろん、私は何かが欠けていて、何が理解できませんか、助けてくれてありがとう (私は PHP/Javascript の初心者です。申し訳ありません)

4

1 に答える 1

2

それが言うように、 DisplayTable は呼び出し時に定義されていません。呼び出す前に関数を宣言します。通常、宣言する前に関数を呼び出すことができますが、あなたの場合は、別のスクリプト タグ (PHP で生成されたもの) から呼び出しています。

動作しないでしょう :

<script type="text/javascript">
test();
</script>
<script type="text/javascript">
function test() { }
</script>

動作します :

<script type="text/javascript">
test();
function test() { }
</script>

また:

<script type="text/javascript"></script>

スクリプトタグの正しい書き方です。

コードを書くときは一貫性を保つ必要があります。そうすることで間違いを見つけやすくなり、間違いも少なくなります。

使用する場合:

bla bla {

}

使用しないでください

bla bla
    {

    }

何処か別の場所。

セミコロンを忘れないでください。指示の後。明確な身分証明書などを保管してください。

于 2013-04-20T10:51:07.200 に答える