2013-04-20 9 views
-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가 콘솔에 정의되지 않은 수신 및 자바 스크립트 함수 DisplayTable 전화가 계속// 스크립트 자바 스크립트 섹션. 물론 나는 뭔가를 놓치고 어떤 도움을 주셔서 감사합니다. (PHP/자바 초보자입니다. 사과드립니다.)

답변

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

안녕하세요. 기능을 정의하는 순서는 자바 스크립트에서는 중요하지 않습니다. 또한

관련 문제