2013-04-20 2 views
-1

Я пытаюсь запустить Javascript-функцию из PHP для инициализации модуля. Вот мой код:не могу понять, почему я получаю функцию ошибки uncaught reference

<?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> 

Я продолжаю получать Uncaught DISPLAYTABLE Reference об ошибках не определен в консоли при загрузке страницы и должны вызвать DisplayTable Javascript функции, в то время как он работает прекрасно, если я удалить// в разделе сценария Javascript. Конечно, я что-то пропустил, и я не понимаю, что, спасибо за любую помощь (я новичок в PHP/Javascript, извиняюсь)

ответ

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 
    { 

    } 

где-то в другом месте.

Не забывайте точки с запятой; после инструкций. Сохраняйте четкую идентификацию и т. Д.

+0

эй. порядок определяющих функций, не имеет значения в javascript. также тег