Foros del Web » Programando para Internet » Javascript »

Problema con JavaScript en plataforma e-learning

Estas en el tema de Problema con JavaScript en plataforma e-learning en el foro de Javascript en Foros del Web. Hola a todos. Tengo poca idea (sería más correcto decir ninguna) de javascript, pero actualmente tengo un problema que ha de resolverse mediante este lenguaje. ...
  #1 (permalink)  
Antiguo 26/05/2006, 11:40
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 18 años, 9 meses
Puntos: 1
Problema con JavaScript en plataforma e-learning

Hola a todos. Tengo poca idea (sería más correcto decir ninguna) de javascript, pero actualmente tengo un problema que ha de resolverse mediante este lenguaje. Es algo complejo, intentaré ser los más claro posible, y si alguien puede y quiere ayudarme, se lo agradeceré enormemente:

1. Estoy desarrollando cursos para una plataforma de e-learning que funciona con php-mysql. La estructura cursos-plataforma funciona de la siguiente manera:

Curso (swf) > javascript -------> pagina.php --------> Mysql (Plataforma)

El curso es una película swf que a través de javascript pasa unos valores a un script php que guarda los datos en la mysql de la plataforma.

2. Los cursos se crean con Robodemo. Hay dos tipos de cursos, los de contenidos, y los de preguntas. En los cursos de contenido funciona todo correctamente, os voy a mostrar cómo funciona para que podáis ayudarme con los cursos de preguntas que es donde hay errores:

2a) Creo el curso de contenido "cap2.swf" con el Robodemo, y en la opción "qué hacer al final de la película" marco: Go to url e indico
Código PHP:
JavaScript:document.test.submit(); 
2b) Acompaño el archivo swf con el archivo cap2.php con este contenido:
Código PHP:
<?PHP include "../../../anema.inc.php";?>
<HTML><TITLE>curso</TITLE>

<BODY><form name="test" method=POST action="<?php echo $score_ganesha ?>&temps=100&note=100">

</form>

<center><OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="640" HEIGHT="480" CODEBASE="http://active.macromedia.com/flash5/cabs/swflash.cab#version=5,0,0,0">

<PARAM NAME=movie VALUE="cap2.swf">

<PARAM NAME=play VALUE=true>

<PARAM NAME=loop VALUE=false>

<PARAM NAME=quality VALUE=high>

<EMBED SRC="cap2.swf" WIDTH=640 HEIGHT=480 loop=false quality=high TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
</EMBED>
</OBJECT>
</center>
</BODY></HTML>
Se ve claramente que cuando la película termina, el javascript pasa a la variable php los valores temps=100 score=100, que luego se guardan en la base de datos indicando que el alumno ha visualizado el curso completo.

3. El problema aparece cuando temps y score no son 100, sino que dependen de los resultados que ha sacado el alumno en el ejercicio. El archivo ejercicio.swf va acompañado de un archivo.php que contiene:
Código PHP:
<?PHP 
include "../../anema.inc.php";

if ( !
Init($connexion,'','') ) {

        
PageErreur(); 

        exit ();
}
?>
<HTML>

<HEAD>

<meta http-equiv=Content-Type content="text/html;  charset=ISO-8859-1">

<script language="JavaScript">

        nomFichierSWF=location.pathname.substr(1)       

        tableau = nomFichierSWF.split("/"); 

        nomFichierSWF = tableau[tableau.length-1]; 

        nomFichierSWF = nomFichierSWF.substr(0,nomFichierSWF.length-4)

document.writeln("<TITLE>" + nomFichierSWF + "</TITLE>");

function SauveResult()

{

//Conversion temps venant de MX

if (timeTotal.length==8) {

tableau=timeTotal.split(":")

timeTotal=parseInt(tableau[0]*3600)+parseInt(tableau[1]*60)+parseInt(tableau[2])

}

//window.open("<?PHP echo $score_ganesha ?>&temps=" + timeTotal + "&note=" + scoreFin,"","toolbar=no,status=yes,scrollbars=yes,resizable=yes,width=600,height=300");

window.location="<?PHP echo $score_ganesha ?>&temps=" + timeTotal + "&note=" + scoreFin

}

</script>

</HEAD>

<BODY bgcolor="#ffffff">

<SCRIPT LANGUAGE=JavaScript>

<!--

var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;

// Handle all the the FSCommand messages in a Flash movie

eval('function '+nomFichierSWF+'_DoFSCommand(command, args) {var '+nomFichierSWF+'Obj = InternetExplorer ? '+nomFichierSWF+' : document.'+nomFichierSWF+'; if (command == "CMISetTime") {timeTotal = args}; if (command == "CMISetScore") {scoreFin = args; SauveResult()}}')


// Hook for Internet Explorer 

if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && 

          navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {

        document.write('<SCRIPT LANGUAGE=VBScript\> \n');

        document.write('on error resume next \n');

        document.write('Sub '+nomFichierSWF+'_FSCommand(ByVal command, ByVal args)\n');

        document.write('  call '+nomFichierSWF+'_DoFSCommand(command, args)\n');

        document.write('end sub\n');

        document.write('</SCRIPT\> \n');

}

//-->
        document.writeln('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"')

        document.writeln('codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"')

        document.writeln('ID='+nomFichierSWF+' WIDTH="100%" HEIGHT="100%" ALIGN="">')

        document.writeln('<PARAM NAME=movie VALUE="'+nomFichierSWF+'.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#ffffff> <EMBED src="'+nomFichierSWF+'.swf" quality=high bgcolor=#ffffff  WIDTH="100%" HEIGHT="100%" ')

        document.writeln('swLiveConnect=true ID="'+nomFichierSWF+'" NAME="'+nomFichierSWF+'" ALIGN=""')

        document.writeln('TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>')

        document.writeln('</OBJECT>')

</SCRIPT>
</BODY>
</HTML>
Lo que necesito saber es qué instrucción JavaScript tengo que indicar en el programa Robodemo cuando finalice la película swf. Un código que permita pasar las variables al estilo de JavaScript:document.test.submit(); Algo como
Código PHP:
JavaScript:document.temps+note.submit(); 
Espero haber sido claro y que se entienda el problema. El problema está en la instrucción JavaScript que hay que dar en Robodemo, eso está clarísimo, porque el script php funciona correctamente con otros swf que he probado pero de los que desgraciadamente no tengo el fuente.

Si alguien puede echarme una mano lo agradeceré enormemente, saludos y buen fin de semana a todos!!!!!
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:57.