Problema con javascript: Document.write me tiene mania!!!!!

Iniciado por z3nth10n, 4 Abril 2013, 17:33 PM

0 Miembros y 1 Visitante están viendo este tema.

z3nth10n

Hola!!! Buenas a todos, pues hoy he estado haciendo pruebas (ya llevo días) xD
Y bueno, pues me he hartado, lo que quiero hacer es meter el value de un input por dentro de un codigo html con un document.write, y que se lleve el link del juego y que lo meta dentro de un textarea para que luego con un $_POST se meta en la base de datos, el problema es que no va XD

Hay varios codes que son:

El script principal que no va:

Código (javascript) [Seleccionar]
function hola() {
var value = document.getElementById("nombre").value;
document.write("<select name=\"ver\" onChange=\"OnDropDownChange(this);\"><option selected=\"selected\">Selecciona el lenguaje</option><option>-----</option><option></option><option value=\"<script type='text/javascript' src='http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject.js'><\/script><script type='text/javascript'><!-- function GetUnity() { if (typeof unityObject != 'undefined') { return unityObject.getObjectById('unityPlayer'); } return null; } if (typeof unityObject != 'undefined') { var params = { backgroundcolor: '000000', bordercolor: '000000', textcolor: 'FFFFFF', disableContextMenu: true }; unityObject.embedUnity('unityPlayer', '" + value + "', document.documentElement.clientWidth, document.documentElement.clientHeight, params); } //--> --> <\/script> <div id='unityPlayer' style='width: 100%; height: 100%; visibility: visible;'><embed type='application/vnd.unity' style='display: block; width: 100%; height: 100%;' width='100%' height='100%' tabindex='0' backgroundcolor='000000' bordercolor='000000' textcolor='FFFFFF' disablecontextmenu='true' firstframecallback='unityObject.firstFrameCallback();' src='" + value + "'></div>\">Flash</option><option value=\"\">Java</option><option value=\"\">Unity3D</option><option value=\"\">iFrame</option></select>");
}

document.write(hola());


Me salta un "undefined" después de la selectbox, pero además no funciona, porque no coje el value de nombre, nombre aquí esta:

 <b>Link del juego:</b>
   <input type="text" name="linkjuego" id="linkjuego" /><br>


El textarea:

<textarea id="trat" style="width: 490px; height: 60px;"></textarea>

El script del select que si va:

Código (javascript) [Seleccionar]
function OnDropDownChange(dropDown) {
       var selectedValue = dropDown.options[dropDown.selectedIndex].value;
       document.getElementById("trat").value = selectedValue;
   }


Y bueno, pues eso es todo, a ver quien me hecha una mano, un saludo! :)
PD: Quien lo quiera probar que se meta aquí: http://ikillcraft.a0001.net/formulario.php

Interesados hablad por Discord.

#!drvy

A la hora de llamar la funcion hola(), el value de "nombre" esta vació, por eso te retorna "undefined".

Saludos

z3nth10n

Okey, y como hago que lo detecte automaticamente, algo así que cuando lo pongas se vaya actualizando solo¿ No soy tan pro xD

Interesados hablad por Discord.

#!drvy

#3
Para empezar, olvídate de document.write.. es algo del siglo pasado. Usa innerHTML para escribir dentro de un div. Sobre cuando añadir la lista... puedes utilizar onblur para llamar a la funcion hola(). Asi, solo cuando el campo "nombre" pierda el foco, este se cambiara.. también puedes hacerlo a lo bestia y utilizar onkeypress.

Código (html4strict) [Seleccionar]
<input type="text" name="nombre" id="nombre" onkeypress="hola()">
Código (html4strict) [Seleccionar]
<div id="tipo_juego"></div>
<script>
function hola() {
var value = document.getElementById("nombre").value;
var div = document.getElementById("tipo_juego");
div.innerHTML = "<select name=\"ver\" onChange=\"OnDropDownChange(this);\"><option selected=\"selected\">Selecciona el lenguaje</option><option>-----</option><option></option><option value=\"<script type='text/javascript' src='http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject.js'><\/script><script type='text/javascript'><!-- function GetUnity() { if (typeof unityObject != 'undefined') { return unityObject.getObjectById('unityPlayer'); } return null; } if (typeof unityObject != 'undefined') { var params = { backgroundcolor: '000000', bordercolor: '000000', textcolor: 'FFFFFF', disableContextMenu: true }; unityObject.embedUnity('unityPlayer', '" + value + "', document.documentElement.clientWidth, document.documentElement.clientHeight, params); } //--> --> <\/script> <div id='unityPlayer' style='width: 100%; height: 100%; visibility: visible;'><embed type='application/vnd.unity' style='display: block; width: 100%; height: 100%;' width='100%' height='100%' tabindex='0' backgroundcolor='000000' bordercolor='000000' textcolor='FFFFFF' disablecontextmenu='true' firstframecallback='unityObject.firstFrameCallback();' src='" + value + "'></div>\">Flash</option><option value=\"\">Java</option><option value=\"\">Unity3D</option><option value=\"\">iFrame</option></select>";
}
</script>


PD: Te recomiendo organizar un poco el JS.

Saludos

z3nth10n

Bueno, ya lo he reorganizado y todo pero sigue sin funcionar el value de aquí:

Citardiv.innerHTML = "<select name=\"ver\" onChange=\"OnDropDownChange(this);\"><option selected=\"selected\">Selecciona el lenguaje</option><option>-----</option><option></option><option value=\"<script type='text/javascript' src='http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject.js'><\/script><script type='text/javascript'><!-- function GetUnity() { if (typeof unityObject != 'undefined') { return unityObject.getObjectById('unityPlayer'); } return null; } if (typeof unityObject != 'undefined') { var params = { backgroundcolor: '000000', bordercolor: '000000', textcolor: 'FFFFFF', disableContextMenu: true }; unityObject.embedUnity('unityPlayer', '" + value + "', document.documentElement.clientWidth, document.documentElement.clientHeight, params); } //--> --> <\/script> <div id='unityPlayer' style='width: 100%; height: 100%; visibility: visible;'><embed type='application/vnd.unity' style='display: block; width: 100%; height: 100%;' width='100%' height='100%' tabindex='0' backgroundcolor='000000' bordercolor='000000' textcolor='FFFFFF' disablecontextmenu='true' firstframecallback='unityObject.firstFrameCallback();' src='" + value + "'></div>\">Flash</option><option value=\"\">Java</option><option value=\"\">Unity3D</option><option value=\"\">iFrame</option></select>";

:-\ :-\

He utilizado un body onload="hola()" eso afecta en algo?  :huh:

Interesados hablad por Discord.

#!drvy

onload es al cargar  y sigues con el mismo problema :silbar:

Saludos

z3nth10n

Vamos a ver ya cambie el nombre, y quite el onload del body, pero entonces no carga xDDD

Y si pongo el onload tampoco va, pero si carga.  :-\

Interesados hablad por Discord.

#!drvy

A ver, has probado poniendo TODO tal y como te lo he puesto en el otro post ? Porque yo si.. y funciona perfectamente...

Saludos

z3nth10n

#8
A que soy gilipollas y en mi casa aún no lo saben, joder tio estoy apollardao xD
Estoy intentado poner el input que no es, le estaba poniendo el id de nombre, y era el de linkjuego xD
Gracias por la ayuda, coño tantos inputs y mierdas ya lian xD Ayer me paso lo mismo... Soy un poco retarded a veces sorry xD

----

Que piensas sinceramente sobre estos despistes, opina por favor, necesito que me den una ostia como una catedral xD

Interesados hablad por Discord.

#!drvy

Jajjaa na a mi me pasa constantemente... sobre todo cuando tengo que recoger información de quinientosmiltrescientoscincuenta inputs xD

Saludos