View Full Version : Problema com javascript


b1k3r_
18-07-2007, 12:50
Hey pessoal, precisava de uma ajuda sff, este é o código e ali esta o problema:
<?php $var=0; ?>
while(i<n)
{
<?php
print("form1.txt$var.value=todo[$var];");
$var+=1;
print("alert($var);");
?>
i+=1;
}

o problema aqui é ele nao incrementar o $var (no alert aparece sempre "1").

--------------------------------------------------
A outra alternativa que eu tinha era nem usar php, o que seria

while(i<n)
{
var nome="form1.txt"+i;
nome.value=todo[i];
i+=1;
}

Neste dá-me erro de syntaxe :(

--------------------------------------------------

O objectivo seria em 7(n do while) textbox por uns valores que vêm de tráz, seria:
form1.txt0.value=blabla;
form1.txt1.value=bleble;
.... assim sucessivamente em 7 textbox, agradecia qualquer ajuda ou alternativa, obrigado [[[]]]

p3dro
18-07-2007, 14:17
vê se isto te ajuda:

<?php
$n=7;
for($var =0;$var<$n;$var++){
print("form1.txt$var.value=todo[$var];\n");
print("alert($var);\n");
}
?>

b1k3r_
18-07-2007, 14:27
vê se isto te ajuda:

<?php
$n=7;
for($var =0;$var<$n;$var++){
print("form1.txt$var.value=todo[$var];\n");
print("alert($var);\n");
}
?>


Obrigado pela ajuda p3dro...Dava mas o problema é que neste caso eu sei que o n é igual a 7, mas mais tarde se a empresa quiser acrescentar ou eliminar alguns campos, eu nao vou saber, por isso eu tenho que fazer como se nao soubesse quanto é o n(o seu valor é conhecido atravez de calculos que estao noutra funcao)

p3dro
18-07-2007, 14:48
Obrigado pela ajuda p3dro...Dava mas o problema é que neste caso eu sei que o n é igual a 7, mas mais tarde se a empresa quiser acrescentar ou eliminar alguns campos, eu nao vou saber, por isso eu tenho que fazer como se nao soubesse quanto é o n(o seu valor é conhecido atravez de calculos que estao noutra funcao)

ah ok, já percebi

então podes mesmo fazer em javascript, tipo isto:


for(i=0;i<n;i++){
document.form1["txt"+i].value=todo[i];
}


o form1 está hard-coded, podes por ex. criar uma função k tenho o form como parametro e assim poderes adaptar o código a outros formulários.

espero ter ajudado :)

b1k3r_
18-07-2007, 15:08
Uuui bacano meu, obrigadão, ja esta a funcionar, tnks mesmo :001:
registei-me hoje no forum e estou a ver que valeu a pena :wink:

MX+
19-07-2007, 19:52
Mas convem perceber o erro.
O teu erro é que tavas a contar com um while do javascript pra te fazer um while de php..
Passo a explicar:

while(i<n)
{
<?php
print("form1.txt$var.value=todo[$var];");
$var+=1;
print("alert($var);");
?>
i+=1;
}Este pedaço de código, quando executado fica:

while(i<n)
{
form1.txt0.value=todo[0];
0 += 1;
alert(0);
i+=1;
}

Depois disto fica bastante óbvio o que está a acontecer verdadeiramente no javascript =D
É preciso muito cuidado quando misturam as duas linguagens, porque o PHP é interpretado antes.

Cumprimentos.

b1k3r_
20-07-2007, 09:35
Huum ok, ja percebi, tnks pelas ajudas [[]]

b1k3r_
20-07-2007, 11:00
E ca estou eu outra vez com mais um problema/dúvida:

campos[a].innerHTML="<input type='text' name='txt"+a+"' value=''>"

Mas eu agora precisava de por um calendario, cujo código é:

<input name="txt_data" type="text" id="cal-field-1" disabled="true">
<button type="submit" id="cal-button-1">...</button>
<script type="text/javascript">
Calendar.setup({
inputField : "cal-field-1",
ifFormat : "%Y-%m-%d %H:%M",
showsTime : true,
button : "cal-button-1",
align : "Tr"
});
</script>

Eu ja tentei por este bocado de código(do calendario) tudo numa linha e trocar as " por ', mas não dá.
Como faço ou que alternativas para isso ha.