Menu

2 Páginas V   1 2 >  
Reply to this topicStart new topic
> [JS][PHP][HTML]activar/desactivar text field com checkbox
V
Kugas
post Jun 5 2008, 10:09 AM
Post #1




Grupo: Membro
Posts: 46
Registado: 17-December 07
Membro nº: 18,577



Boas...

é o seguinte, descobri por ai na net uma forma de desactivar e activar uma TEXT-FIELD ao selecionar uma checkbox... tou a fazer isto dentro de um ciclo while... ele funca num so registo da query mas kd é mais que um deixa de funcar...

deixarei aki o codigo:

<html>

<head>

<meta>

<link>

<title>.::CRM PDA::.</title>

<style type="text/css">

<style2>

</style>

<script>

var pairs = new Array()//corespondent checkboxes/textfields names

pairs[0] =['incheck','datain']

pairs[1] =['outcheck','dataout']

function endis(f){

for(var i=0;i<pairs.length;i++){

if(f.elements[pairs[i][0]].checked){

f.elements[pairs[i][1]].disabled=false;

}

else{f.elements[pairs[i][1]].disabled=true}

}

}

</script>

</head>



<bodyb>

<br><div align="center" id="box"><strong><_SESSION></strong></div>

<br>

<div align="center"><strong>Campanhas de Merchandising</strong></div>

<br><form>

<table width="98%" border="0" cellspacing="1" cellpadding="0">

      <tr>

        <td>Campanhas</td>

        <td>In</td>

        <td>Out</td>

        <td>Entrada</td>

        <td>Sa&iacute;da</td>

        <td>&nbsp;</td>

      </tr><php>

      <tr>

        <td><row></td>

        <td><input></td>

        <td><input></td>

        <td><input></td>

        <td><input></td>

        <td>&nbsp;</td>

      </tr>

      <php>

      <tr>

        <td><div align="center"><span class="style9"><msg></span></div></td>

      </tr>

      <tr>

        <td>&nbsp;</td>

      </tr>

      <tr>

    <td>

      <div align="center">

              <input>

              &nbsp;&nbsp;&nbsp; Voltar: <a href="welcomepda.php"><img src="images/setalalanja.PNG" width="23" height="20" border="0"></a> </div></td>

  </tr>

</table></form>



</body>

</html>


agradeço a ajuda :s

Obrigado
Go to the top of the page
 
+Quote Post
fleep
post Jun 9 2008, 04:16 PM
Post #2


JAQUIM!

Grupo: Membro
Posts: 748
Registado: 28-November 06
De: 239
Membro nº: 5,804



<script>

function desactivar(){

if(document.WEBTUGA.textfield.disabled==true){document.WEBTUGA.textfield.disabled=false;}

else{document.WEBTUGA.textfield.disabled=true;}

}

</script>



<form name=WEBTUGA>

<input type=checkbox onclick=desactivar()>



<input type=text name=textfield>

</form>


testa e adapta smile.gif


--------------------
Assina-mos
Go to the top of the page
 
+Quote Post
Kugas
post Jun 9 2008, 04:32 PM
Post #3




Grupo: Membro
Posts: 46
Registado: 17-December 07
Membro nº: 18,577



e funciona num ciclo while (PHP)???
Go to the top of the page
 
+Quote Post
fleep
post Jun 9 2008, 04:42 PM
Post #4


JAQUIM!

Grupo: Membro
Posts: 748
Registado: 28-November 06
De: 239
Membro nº: 5,804



(Kugas)
e funciona num ciclo while (PHP)???

ah nao tomei atenção a essa parte tongue.gif

edit: não podes postar aí o código php ?


--------------------
Assina-mos
Go to the top of the page
 
+Quote Post
Kugas
post Jun 9 2008, 05:02 PM
Post #5




Grupo: Membro
Posts: 46
Registado: 17-December 07
Membro nº: 18,577



o problema é k eu meto aki o codigo php e desaparece ao submeter :| muito estranho... aliás esse codigo html k ai esta tb tinha o codigo PHP e nao sei prk ele nao ficou la juntamente com ele...
Go to the top of the page
 
+Quote Post
fleep
post Jun 9 2008, 05:23 PM
Post #6


JAQUIM!

Grupo: Membro
Posts: 748
Registado: 28-November 06
De: 239
Membro nº: 5,804



(Kugas)
o problema é k eu meto aki o codigo php e desaparece ao submeter :| muito estranho... aliás esse codigo html k ai esta também tinha o codigo PHP e nao sei prk ele nao ficou la juntamente com ele...


Quando estás a escrever a mensagem, tens uma opção que diz "Desactivar HTML nesta mensagem" smile.gif


--------------------
Assina-mos
Go to the top of the page
 
+Quote Post
Kugas
post Jun 11 2008, 03:43 PM
Post #7




Grupo: Membro
Posts: 46
Registado: 17-December 07
Membro nº: 18,577



Ora ai esta, desculpa a demora:

<html>

<head>

<meta http-equiv="content-type" content="text/html;charset=iso-8859-1;" />

<link href="includes/main.css" rel="stylesheet" type="text/css">

<title>.::PDA::.</title>

<style type="text/css">

<!--

.style2 {

    color: #0000ff;

    font-weight: bold;

}

.style9 {

    color:#009900;

    font-weight: bold;

    font-size:12px;

}

-->

</style>

<script language="JavaScript" type="text/JavaScript">

var pairs = new Array()//corespondent checkboxes/textfields names

pairs[0] =['incheck','datain']

pairs[1] =['outcheck','dataout']

function endis(f){

for(var i=0;i<pairs.length;i++){

if(f.elements[pairs[i][0]].checked){

f.elements[pairs[i][1]].disabled=false;

}

else{f.elements[pairs[i][1]].disabled=true}

}

}

</script>

</head>



<bodyb>

<br><div align="center" id="box"><strong><?=$_SESSION['nome'].'-'.$_SESSION['localidade']?></strong></div>

<br>

<div align="center"><strong>Campanhas</strong></div>

<br><form name="form1" method="post" >

<table width="98%"  border="0" cellspacing="1" cellpadding="0">

      <tr>

        <td width="19%" id="headerT">Campanhas</td>

        <td width="4%" id="headerT">In</td>

        <td width="4%" id="headerT">Out</td>

        <td width="10%" id="headerT">Entrada</td>

        <td width="6%" id="headerT">Sa&iacute;da</td>

        <td width="57%" id="headerT">Info</td>

      </tr><?php

      $sel="SELECT c.campanha,ca.idcamp

FROM tbl_campanhas c, tbl_campasaloca ca

WHERE ca.estado=0

AND ca.idCliente=".$_SESSION['idCliente']."

AND ca.campanha=c.idcam";

     $stmt=mysql_query($sel, $conDb);

error_log('Consulta--->'.$_SESSION['nome']);

#echo $sel;

    while($row=mysql_fetch_array($stmt))

{

    $id=$row['idcamp'];

    ?>



    <tr>

        <td id="bodyT"><input type="hidden" name="idcamp" size="10" value="<?=$row['idcamp']?>"><?=$row['campanha']?></td>

        

        <td id="bodyT"><input type="checkbox" name="incheck" onClick="endis(this.form)"></td>

        

        <td id="bodyT"><input type="checkbox" name="outcheck" onClick="endis(this.form)"></td>

        

        <td id="bodyT"><input type="text" name="datain" size="10"></td>

        

        <td id="bodyT"><input type="text" name="dataout" size="10"></td>      

<?php $selin="SELECT MAX(idcampin) as idcampin,insertin,datain,dataout

FROM tbl_datain

WHERE idcampanha='".$id."'

GROUP BY idcampanha,datain,dataout";

     $stmtin=mysql_query($selin, $conDb);

#echo $selin;

#echo '<br>';



$rowi=mysql_fetch_array($stmtin);    



#echo $rowi['idcampin'];

#echo $rowi['datain'];

#echo $rowi['dataout'];



$idcampin=$rowi['idcampin'];



?>

    <td id="bodyT"><?=$rowi['datain']!='0000-00-00' && $rowi['dataout']=='0000-00-00' && $rowi['insertin']==1?'Por Favor insira a data de saída quando possível!<input type="hidden" name="inin" size="10" value="1"><input type="hidden" name="idc" size="10" value="'.$idcampin.'">':''?>

    <?=$rowi['datain']==''?'Ainda não foi efectuada qualquer entrada nesta campanha!<input type="hidden" name="inin" size="10" value="0">':''?>

    <?=$rowi['datain']=='0000-00-00' && $rowi['dataout']=='0000-00-00' && $rowi['insertin']==0?'Por Favor insira a data de saída quando possível!<input type="hidden" name="inin" size="10" value="1"><input type="hidden" name="idc" size="10" value="'.$idcampin.'">':''?>

    </td>

     </tr>

<?php

}

?>

      <tr>

        <td colspan="6"><div align="center"><span class="style9"><?=$msg?></span></div></td>

      </tr>

      <tr>

        <td colspan="6">&nbsp;</td>

      </tr>

      <tr>

    <td colspan="6">

      <div align="center">

              <input type="submit" name="Submit" value="Gravar!">

              &nbsp;&nbsp;&nbsp; Voltar: <a href="welcomepda.php"><img src="images/setalalanja.PNG" width="23" height="20" border="0"></a> </div></td>

  </tr>

</table></form>



</body>

</html>
Go to the top of the page
 
+Quote Post
fleep
post Jun 13 2008, 10:31 PM
Post #8


JAQUIM!

Grupo: Membro
Posts: 748
Registado: 28-November 06
De: 239
Membro nº: 5,804



boas, também só consegui ver isto agora e aqui vai:

<script>

function desactivar(x){

var input = document.getElementById(x);  

    if(input.disabled==true){input.disabled=false;}else{input.disabled=true;}

}  

</script>







(...)



$i=0;

while(...){

echo"<input type='checkbox' name='check' value='$i' onclick='desactivar(this.value)'> <input type='text' name='texto' id='$i'>";

$i++;

}


A ideia é existir uma variável a servir de contador para associar o value de uma checkbox ao id da respectiva input. Eu fiz esse código usando uma listagem que já tinha feita de um projecto antigo e lá funcionou bem. Agora não sei é se vai servir bem no teu caso, porque não cheguei a perceber o que era pretendido com esse código.


--------------------
Assina-mos
Go to the top of the page
 
+Quote Post
Kugas
post Jun 16 2008, 09:33 AM
Post #9




Grupo: Membro
Posts: 46
Registado: 17-December 07
Membro nº: 18,577



nao funciona :s

aqui esta o codigo:

<html>

<head>

<meta http-equiv="content-type" content="text/html;charset=iso-8859-1;" />

<link href="includes/main.css" rel="stylesheet" type="text/css">

<title>.::CRM::.</title>

<style type="text/css">

<!--

.style2 {

    color: #0000ff;

    font-weight: bold;

}

.style9 {

    color:#009900;

    font-weight: bold;

    font-size:12px;

}

-->

</style>

<script>

function desactivar(x){

var input = document.getElementById(x);

   if(input.disabled==true){input.disabled=false;}else{input.disabled=true;}

}

</script>

</head>



<bodyb>

<br><div align="center" id="box"><strong><?=$_SESSION['nome'].'-'.$_SESSION['localidade']?></strong></div>

<br>

<div align="center"><strong>Campanhas</strong></div>

<br><form name="form1" method="post" >

<table width="98%"  border="0" cellspacing="1" cellpadding="0">

      <tr>

        <td width="19%" id="headerT">Campanhas</td>

        <td width="4%" id="headerT">In</td>

        <td width="4%" id="headerT">Out</td>

        <td width="10%" id="headerT">Entrada</td>

        <td width="6%" id="headerT">Sa&iacute;da</td>

        <td width="57%" id="headerT">Info</td>

      </tr><?php

      $sel="SELECT c.campanha,ca.idcamp

FROM tbl_campanhas c, tbl_campasaloca ca

WHERE ca.estado=0

AND ca.idCliente=".$_SESSION['idCliente']."

AND ca.campanha=c.idcam";

     $stmt=mysql_query($sel, $conDb);

error_log('Consulta--->'.$_SESSION['nome']);

#echo $sel;

$i=0;

    while($row=mysql_fetch_array($stmt))

{

    $id=$row['idcamp'];

    ?>



    <tr>

        <td id="bodyT"><input type="hidden" name="idcamp" size="10" value="<?=$row['idcamp']?>"><?=$row['campanha']?></td>

        

        <td id="bodyT"><input type="checkbox" name="check" value="$i" onclick="desactivar(this.value)"></td>

        

        <td id="bodyT"><input type="checkbox" name="check" value="$i" onclick="desactivar(this.value)"></td>

        

        <td id="bodyT"><input type="text" name="datain" size="10"></td>

        

        <td id="bodyT"><input type="text" name="dataout" size="10"></td>      

<?php $selin="SELECT MAX(idcampin) as idcampin,insertin,datain,dataout

FROM tbl_datain

WHERE idcampanha='".$id."'

GROUP BY idcampanha,datain,dataout";

     $stmtin=mysql_query($selin, $conDb);

#echo $selin;

#echo '<br>';



$rowi=mysql_fetch_array($stmtin);    



#echo $rowi['idcampin'];

#echo $rowi['datain'];

#echo $rowi['dataout'];



$idcampin=$rowi['idcampin'];



?>

    <td id="bodyT"><?=$rowi['datain']!='0000-00-00' && $rowi['dataout']=='0000-00-00' && $rowi['insertin']==1?'Por Favor insira a data de saída quando possível!<input type="hidden" name="inin" size="10" value="1"><input type="hidden" name="idc" size="10" value="'.$idcampin.'">':''?>

    <?=$rowi['datain']==''?'Ainda não foi efectuada qualquer entrada nesta campanha!<input type="hidden" name="inin" size="10" value="0">':''?>

    <?=$rowi['datain']=='0000-00-00' && $rowi['dataout']=='0000-00-00' && $rowi['insertin']==0?'Por Favor insira a data de saída quando possível!<input type="hidden" name="inin" size="10" value="1"><input type="hidden" name="idc" size="10" value="'.$idcampin.'">':''?>

    </td>

     </tr>

<?php

$i++;

}

?>

      <tr>

        <td colspan="6"><div align="center"><span class="style9"><?=$msg?></span></div></td>

      </tr>

      <tr>

        <td colspan="6">&nbsp;</td>

      </tr>

      <tr>

    <td colspan="6">

      <div align="center">

              <input type="submit" name="Submit" value="Gravar!">

              &nbsp;&nbsp;&nbsp; Voltar: <a href="welcomepda.php"><img src="images/setalalanja.PNG" width="23" height="20" border="0"></a> </div></td>

  </tr>

</table></form>



</body>

</html>
Go to the top of the page
 
+Quote Post
fleep
post Jun 16 2008, 02:57 PM
Post #10


JAQUIM!

Grupo: Membro
Posts: 748
Registado: 28-November 06
De: 239
Membro nº: 5,804



é impressão minha ou falta-te por o id='$i' nas texts? de resto acho que está tudo bem.


btw, tu tens 2 checks e 2 texts , certo? tu queres que uma das checks active/desactive uma dessas texts e que a outra check faça o mesmo em relação à outra text?é que se assim for, este código não vai dar. vai ter de se brincar um bocado com a $i tongue.gif


--------------------
Assina-mos
Go to the top of the page
 
+Quote Post
Kugas
post Jun 16 2008, 03:00 PM
Post #11




Grupo: Membro
Posts: 46
Registado: 17-December 07
Membro nº: 18,577



ya é isso mesmo que se pretende... entao como se brinca ai com a $i?
Go to the top of the page
 
+Quote Post
fleep
post Jun 16 2008, 03:52 PM
Post #12


JAQUIM!

Grupo: Membro
Posts: 748
Registado: 28-November 06
De: 239
Membro nº: 5,804



(Kugas)
ya é isso mesmo que se pretende... entao como se brinca ai com a $i?


assim de repente sai-me isto:




(...)



$i=0;

while(...){

echo "<input type='checkbox' name='check1' value='$i' onclick='desactivar(this.value)'>";

$i++;



echo "<input type='checkbox' name='check2' value='$i' onclick='desactivar(this.value)'>";

$i--;



echo"<input type='text' name='text1' id='$i'>";

$i++;



echo"<input type='text' name='text2' id='$i'>";





$i++;

}


Assim o value da check1 vai estar associado ao id da text1 e o value da check2 associado ao id da text2.


--------------------
Assina-mos
Go to the top of the page
 
+Quote Post
Kugas
post Jun 17 2008, 02:50 PM
Post #13




Grupo: Membro
Posts: 46
Registado: 17-December 07
Membro nº: 18,577



fiz como tu fizeste e nao dá :S desliga so o primeiro textfield qd seleciono a 1ª checkbox de resto fica como se nada tivesse passado qd os seleciono tb
Go to the top of the page
 
+Quote Post
fleep
post Jun 17 2008, 05:25 PM
Post #14


JAQUIM!

Grupo: Membro
Posts: 748
Registado: 28-November 06
De: 239
Membro nº: 5,804



(Kugas)
fiz como tu fizeste e nao dá :S desliga so o primeiro textfield qd seleciono a 1ª checkbox de resto fica como se nada tivesse passado qd os seleciono também

Ah mas tu queres que uma checkbox desactive 2 texts ?
Isso ta feito de modo a q a primeira check desactive a primeira text e a 2ª check desactive a 2ª text


--------------------
Assina-mos
Go to the top of the page
 
+Quote Post
Kugas
post Jun 18 2008, 08:39 AM
Post #15




Grupo: Membro
Posts: 46
Registado: 17-December 07
Membro nº: 18,577



(fleep)
(Kugas)
fiz como tu fizeste e nao dá :S desliga so o primeiro textfield qd seleciono a 1ª checkbox de resto fica como se nada tivesse passado qd os seleciono também

Ah mas tu queres que uma checkbox desactive 2 texts ?
Isso ta feito de modo a q a primeira check desactive a primeira text e a 2ª check desactive a 2ª text


não... eu keria como tas a dizer a 1ª check desactiva/activa a 1ª text e a 2ª desactiva/activa a 2ª text smile.gif

mas como ja te tinha dito o que me deste nao ta a funcar :cry:

se nao tivesse que usar a função while ja tava tudo bem lol isto agora torna-se um desafio pa tentar meter isto a funcar biggrin.gif
Go to the top of the page
 
+Quote Post
fleep
post Jun 18 2008, 12:23 PM
Post #16


JAQUIM!

Grupo: Membro
Posts: 748
Registado: 28-November 06
De: 239
Membro nº: 5,804



Podes-me mandar essa página e a BD ? Eu tenho o código que te mandei aplicado e a funcionar :s


--------------------
Assina-mos
Go to the top of the page
 
+Quote Post
Kugas
post Jun 19 2008, 03:30 PM
Post #17




Grupo: Membro
Posts: 46
Registado: 17-December 07
Membro nº: 18,577



desculpa eu nao te posso enviar prk tem cenas que são confidenciais... com o codigo k te dei nao consegues ver mais ou menos? :S
Go to the top of the page
 
+Quote Post
fleep
post Jun 21 2008, 10:32 PM
Post #18


JAQUIM!

Grupo: Membro
Posts: 748
Registado: 28-November 06
De: 239
Membro nº: 5,804



Estive agora a adaptar o teu codigo e o meu a uma BD que tinha aqui. Só precisas de modificar as 3 partes que estão a negrito.
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1;" />
<link href="includes/main.css" rel="stylesheet" type="text/css">
<title>.::PDA::.</title>
<style type="text/css">
<!--
.style2 {
color: #0000ff;
font-weight: bold;
}
.style9 {
color:#009900;
font-weight: bold;
font-size:12px;
}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
function desactivar(x){
var input = document.getElementById(x);
if(input.disabled==true){input.disabled=false;}else{input.disabled=true;}
}
</script>

</head>

<bodyb>
<br><div align="center" id="box"><strong><?=$_SESSION['nome'].'-'.$_SESSION['localidade']?></strong></div>
<br>
<div align="center"><strong>Campanhas</strong></div>
<br><form name="form1" method="post" >
<table width="98%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td width="19%" id="headerT">Campanhas</td>
<td width="4%" id="headerT">In</td>
<td width="4%" id="headerT">Out</td>
<td width="10%" id="headerT">Entrada</td>
<td width="6%" id="headerT">Sa&iacute;da</td>
<td width="57%" id="headerT">Info</td>
</tr><?php

$ligacao = mysql_connect('localhost', 'root') or die("Falha na ligação à base de dados.");
mysql_select_db("blog", $ligacao) or die("Base de dados não encontrada.");


$sel="SELECT * FROM post where estado=1 ORDER BY id desc";
$stmt=mysql_query($sel);
$i=0;
while($row=mysql_fetch_array($stmt))
{
$id=$row['id'];
?>

<tr>
<td id="bodyT"><input type="hidden" name="idcamp" size="10" value="<?=$row['id']?>"><?=$row['titulo']?></td>

<td id="bodyT"><input type="checkbox" name="incheck" value='<?=$i?>' onclick='desactivar(this.value)'></td>
<?$i++?>
<td id="bodyT"><input type="checkbox" name="outcheck" value='<?=$i?>' onclick='desactivar(this.value)'></td>
<?$i--?>
<td id="bodyT"><input type="text" name="datain" id='<?=$i?>' size="10"></td>
<?$i++?>
<td id="bodyT"><input type="text" name="dataout" id='<?=$i?>' size="10"></td>

<td id="bodyT"><?=$rowi['datain']!='0000-00-00' && $rowi['dataout']=='0000-00-00' && $rowi['insertin']==1?'Por Favor insira a data de saída quando possível!<input type="hidden" name="inin" size="10" value="1"><input type="hidden" name="idc" size="10" value="'.$idcampin.'">':''?>
<?=$rowi['datain']==''?'Ainda não foi efectuada qualquer entrada nesta campanha!<input type="hidden" name="inin" size="10" value="0">':''?>
<?=$rowi['datain']=='0000-00-00' && $rowi['dataout']=='0000-00-00' && $rowi['insertin']==0?'Por Favor insira a data de saída quando possível!<input type="hidden" name="inin" size="10" value="1"><input type="hidden" name="idc" size="10" value="'.$idcampin.'">':'';
$i++ ?>

</td>
</tr>
<?php
}
?>
<tr>
<td colspan="6"><div align="center"><span class="style9"><?=$msg?></span></div></td>
</tr>
<tr>
<td colspan="6">&nbsp;</td>
</tr>
<tr>
<td colspan="6">
<div align="center">
<input type="submit" name="Submit" value="Gravar!">
&nbsp;&nbsp;&nbsp; Voltar: <a href="welcomepda.php"><img src="images/setalalanja.PNG" width="23" height="20