|
[JS][PHP][HTML]activar/desactivar text field com checkbox |
|
|
|
|
Jun 5 2008, 10:09 AM
|
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ída</td>
<td> </td>
</tr><php>
<tr>
<td><row></td>
<td><input></td>
<td><input></td>
<td><input></td>
<td><input></td>
<td> </td>
</tr>
<php>
<tr>
<td><div align="center"><span class="style9"><msg></span></div></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>
<div align="center">
<input>
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
|
|
|
|
|
|
|
|
Jun 9 2008, 04:16 PM
|

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
--------------------
Assina-mos
|
|
|
|
|
|
|
|
Jun 9 2008, 04:32 PM
|
Grupo: Membro
Posts: 46
Registado: 17-December 07
Membro nº: 18,577

|
e funciona num ciclo while (PHP)???
|
|
|
|
|
|
|
|
Jun 9 2008, 04:42 PM
|

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
edit: não podes postar aí o código php ?
--------------------
Assina-mos
|
|
|
|
|
|
|
|
Jun 9 2008, 05:02 PM
|
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...
|
|
|
|
|
|
|
|
Jun 9 2008, 05:23 PM
|

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"
--------------------
Assina-mos
|
|
|
|
|
|
|
|
Jun 11 2008, 03:43 PM
|
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í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"> </td>
</tr>
<tr>
<td colspan="6">
<div align="center">
<input type="submit" name="Submit" value="Gravar!">
Voltar: <a href="welcomepda.php"><img src="images/setalalanja.PNG" width="23" height="20" border="0"></a> </div></td>
</tr>
</table></form>
</body>
</html>
|
|
|
|
|
|
|
|
Jun 13 2008, 10:31 PM
|

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
|
|
|
|
|
|
|
|
Jun 16 2008, 09:33 AM
|
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í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"> </td>
</tr>
<tr>
<td colspan="6">
<div align="center">
<input type="submit" name="Submit" value="Gravar!">
Voltar: <a href="welcomepda.php"><img src="images/setalalanja.PNG" width="23" height="20" border="0"></a> </div></td>
</tr>
</table></form>
</body>
</html>
|
|
|
|
|
|
|
|
Jun 16 2008, 02:57 PM
|

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
--------------------
Assina-mos
|
|
|
|
|
|
|
|
Jun 16 2008, 03:00 PM
|
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?
|
|
|
|
|
|
|
|
Jun 16 2008, 03:52 PM
|

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
|
|
|
|
|
|
|
|
Jun 17 2008, 02:50 PM
|
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
|
|
|
|
|
|
|
|
Jun 17 2008, 05:25 PM
|

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
|
|
|
|
|
|
|
|
Jun 18 2008, 08:39 AM
|
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
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
|
|
|
|
|
|
|
|
Jun 18 2008, 12:23 PM
|

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
|
|
|
|
|
|
|
|
Jun 19 2008, 03:30 PM
|
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
|
|
|
|
|
|
|
|
Jun 21 2008, 10:32 PM
|

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í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"> </td>
</tr>
<tr>
<td colspan="6">
<div align="center">
<input type="submit" name="Submit" value="Gravar!">
Voltar: <a href="welcomepda.php"><img src="images/setalalanja.PNG" width="23" height="20 | |