Enable tekstveld met radiobutton

  • Onderwerp starter Onderwerp starter annuh
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

annuh

Gebruiker
Lid geworden
15 sep 2006
Berichten
40
Hallo,
Ik zit een klein probleem. Ik ben bezig met een enquete over spelcomputers. Nu is een vraag: Welke spelcomputer heb jij? Vervolgens kan de bezoeker kiezen uit een hele rij met spelcomputers, er is echter ook een tekstvak anders waarin de bezoekers zelf de naam van een spelcomputer in kunnen typen. Dit veld moet standaard disable staan maar als de radiobutton voor 'Anders' aangevinkt is dan mag hij worden 'ge-enabeld'

De enable-scriptjes werken meestal met de 'name' tag van het tekstveld MAAR..
ik sla de resultaten (met behulp van PHP) op in de variable $type, die dus ook met de name-tag werkt..
Het script zeg dan: Alle velden/radiobuttons met name="type" moeten op disable worden gezet (en andersom) MAAR dit moet dus niet! Alleen het tekstveld!

Dit is het script tot nu toe:

PHP:
 <?
session_start();

////////////////////////////////////////////////
//////// www.sitemasters.be ////////////////////
//////// Door Tuinstoel ////////////////////////
//////// Een eenvoudig mailformuliertje ////////
////////////////////////////////////////////////

ob_start(); // Voor het cookie setten, anders zal dat hoogst waarschijnlijk niet werken.
$cNaam = 'Enquete: Spelcomputers'; // Je naam...
$cEmail = 'test@test.nl'; // email waar het heen moet
$cOndPre = 'Emailtje -'; // prefix voor onderwerp
$cOndSuf = '- van mij'; // suffix achter onderwerp
$cSpam = 1; // Anti Spam, X aantal minuten
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Mail Formulier</title>


</head>
<body>
<?
if(!empty($_POST['verstuur2']))
  { // Er is op de knop 'verstuur e-mail' gedrukt...
  $pError = ''; // Een begin met de errors als die er zijn
  $pI = 0; // Deze telt het aantal erros.
  if(strlen($_POST['type']) < 2)
    { $pError .= '- Je hebt geen eigen spelcomputer ingevuld!<br>'; $pI++; }
    
  if(!empty($pError))
    { // Als er dan toch errors zijn..
    echo ($pI == 1) ? 'De volgende fout is opgetreden:<br>' : 'De volgende fouten zijn opgetreden:<br>'; // even kijken of het meervoud of enkelvoud is.
    echo $pError; // echoën van de error(s)
    }
  else
    {
        
	$_SESSION['type'] = $_POST["type"]; 

	   
    $pShow = false; // formulier wordt niet weer getoond
  
	


		
    }
	}
  // Kijken of er een waarde moet worden gegeven aan velden...

  $pspelcomputer = $_POST['type'];

    
  // kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
      
  if(!isset($pShow))
  

    { // het formulier als $pShow niet bestaat.

    ?>
    <form id="enquete" name="enquete" method="post" action="<?= $_SERVER['PHP_SELF']; ?>">

 <table border="0" width="100%"> 
    <tr> 
        <td width="1%" bgcolor="#9BE3F9" valign="top" bordercolor="#007095"><b>
		<font face="Arial" color="#007095">3 </font></b></td> 
        <td bgcolor="#9BE3F9" colspan="2"><b><font face="Arial" color="#007095"> 
        <font size="2">Welke spelcomputer heb je?.<br> 
        </font><i><font size="1">Als het er meerdere zijn, zou je dan alleen de 
		gegevens in wil vullen van de spelcomputer waarvan je het meeste gebruik 
		maakt?</font></i></font></b></td> 
    </tr> 
    <tr> 
        <td width="1%">&nbsp;</td> 
        <td width="91%" bgcolor="#007095">
		<table border="1" width="94%" bgcolor="#007095" cellspacing="0" bordercolor="#9BE3F9">
			<tr>
				<td width="11%" align="right" rowspan="6" valign="top"><b>
				<font size="2" face="Arial" color="#9BE3F9">Nintendo&nbsp;&nbsp;
				</font></b></td>
				<td width="88%">
				<input type="radio" value="Nes" name="type"><font size="2" face="Arial" color="#9BE3F9">(Super) 
				Nintento Entertaining System ((S)NES)</font></td>
			</tr>
			<tr>
				<td width="88%">
				<input type="radio" value="Gameboy" name="type"><font size="2" face="Arial" color="#9BE3F9">Gameboy 
				(Color)</font></td>
			</tr>
			<tr>
				<td width="88%">
				<input type="radio" value="64" name="type"><font size="2" face="Arial" color="#9BE3F9">64</font></td>
			</tr>
			<tr>
				<td width="88%">
				<input type="radio" value="Gamecube" name="type"><font size="2" face="Arial" color="#9BE3F9">Gamecube</font></td>
			</tr>
			<tr>
				<td width="88%">
				<input type="radio" value="Ds" name="type"><font size="2" face="Arial" color="#9BE3F9">DS</font></td>
			</tr>
			<tr>
				<td width="88%">
				<input type="radio" value="Wii" name="type"><font size="2" face="Arial" color="#9BE3F9">Wii</font></td>
			</tr>
			<tr>
				<td align="right" colspan="2">&nbsp;</td>
			</tr>
			<tr>
				<td width="11%" align="right" rowspan="4" valign="top"><b>
				<font size="2" face="Arial" color="#9BE3F9">PlayStation&nbsp;&nbsp;
				</font></b></td>
				<td width="88%">
				<input type="radio" value="Ps1" name="type"><font size="2" face="Arial" color="#9BE3F9">1</font></td>
			</tr>
			<tr>
				<td width="88%">
				<input type="radio" value="Ps2" name="type"><font size="2" face="Arial" color="#9BE3F9">2</font></td>
			</tr>
			<tr>
				<td width="88%">
				<input type="radio" value="Ps3" name="type"><font size="2" face="Arial" color="#9BE3F9">3</font></td>
			</tr>
			<tr>
				<td width="88%">
				<input type="radio" value="Psp" name="type">
				<font face="Arial" size="2" color="#9BE3F9">Portable (PSP)</font></td>
			</tr>
			<tr>
				<td align="right" colspan="2">&nbsp;</td>
			</tr>
			<tr>
				<td width="11%" align="right" rowspan="2" valign="top"><b>
				<font size="2" face="Arial" color="#9BE3F9">Xbox&nbsp;&nbsp;
				</font></b></td>
				<td width="88%">
				<input type="radio" value="Xbox" name="type"><font size="2" face="Arial" color="#9BE3F9">1</font></td>
			</tr>
			<tr>
				<td width="88%">
				<input type="radio" value="Xbox360" name="type"><font size="2" face="Arial" color="#9BE3F9">360</font></td>
			</tr>
			<tr>
				<td align="right" colspan="2">&nbsp;</td>
			</tr>
			<tr>
				<td width="11%" align="right"><b>
				<font size="2" face="Arial" color="#9BE3F9">Anders&nbsp;&nbsp;
				</font></b></td>
				<td width="88%">
<SCRIPT LANGUAGE="JavaScript"><!--
function codename() {

if(document.enquete.checkboxname.checked)
{
document.enquete.textname.disabled=false;
}

else
{
document.enquete.textname.disabled=true;
}
}

//-->
</SCRIPT>
				<input type="radio" onclick="codename()" name="checkboxname" value="ON"><font size="2" face="Arial" color="#9BE3F9">nl.
				<input type="text" disabled name="textname" size="20"></font></td>
			</tr>
		</table>
		</td> 
        <td width="6%">&nbsp;</td> 
    </tr> 
    <tr> 
        <td width="1%">&nbsp;</td> 
        <td colspan="2" align="right"><input style="background-color:#9BE3F9;border: 2 solid #0099CC;color:#007095;" type="submit" name="verstuurja1" value="Versturen"</td> 
    </tr> 
    <tr> 
        <td width="1%">&nbsp;</td> 
        <td colspan="2">&nbsp;</td> 
    </tr> 
    <tr> 
        <td width="1%">&nbsp;</td> 
        <td colspan="2">&nbsp;</td> 
    </tr> 
    <tr> 
        <td width="1%">&nbsp;</td> 
        <td colspan="2">&nbsp;</td> 
    </tr> 

</table> 
     
    </form>
    <?
    }
    ?>
</body>
</html>

Hoe zou ik dit kunnen oplossen?
Alvast bedankt!
 
Zo: :)
PHP:
<? 
session_start(); 

//////////////////////////////////////////////// 
//////// www.sitemasters.be //////////////////// 
//////// Door Tuinstoel //////////////////////// 
//////// Een eenvoudig mailformuliertje //////// 
//////////////////////////////////////////////// 

ob_start(); // Voor het cookie setten, anders zal dat hoogst waarschijnlijk niet werken. 
$cNaam = 'Enquete: Spelcomputers'; // Je naam... 
$cEmail = 'test@test.nl'; // email waar het heen moet 
$cOndPre = 'Emailtje -'; // prefix voor onderwerp 
$cOndSuf = '- van mij'; // suffix achter onderwerp 
$cSpam = 1; // Anti Spam, X aantal minuten 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
  <title>Mail Formulier</title> 


</head> 
<body> 
<? 
if(!empty($_POST['verstuur2'])) 
  { // Er is op de knop 'verstuur e-mail' gedrukt... 
  $pError = ''; // Een begin met de errors als die er zijn 
  $pI = 0; // Deze telt het aantal erros. 
  if(strlen($_POST['type']) < 2) 
    { $pError .= '- Je hebt geen eigen spelcomputer ingevuld!<br>'; $pI++; } 
     
  if(!empty($pError)) 
    { // Als er dan toch errors zijn.. 
    echo ($pI == 1) ? 'De volgende fout is opgetreden:<br>' : 'De volgende fouten zijn opgetreden:<br>'; // even kijken of het meervoud of enkelvoud is. 
    echo $pError; // echoën van de error(s) 
    } 
  else 
    { 
         
    $_SESSION['type'] = $_POST["type"];  

        
    $pShow = false; // formulier wordt niet weer getoond 
   
     


         
    } 
    } 
  // Kijken of er een waarde moet worden gegeven aan velden... 

  $pspelcomputer = $_POST['type']; 

     
  // kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond. 
       
  if(!isset($pShow)) 
   

    { // het formulier als $pShow niet bestaat. 

    ?> 
    <form name="enquete" method="post" action="<?= $_SERVER['PHP_SELF']; ?>"> 

 <table border="0" width="100%">  
    <tr>  
        <td width="1%" bgcolor="#9BE3F9" valign="top" bordercolor="#007095"><b> 
        <font face="Arial" color="#007095">3 </font></b></td>  
        <td bgcolor="#9BE3F9" colspan="2"><b><font face="Arial" color="#007095">  
        <font size="2">Welke spelcomputer heb je?.<br>  
        </font><i><font size="1">Als het er meerdere zijn, zou je dan alleen de  
        gegevens in wil vullen van de spelcomputer waarvan je het meeste gebruik  
        maakt?</font></i></font></b></td>  
    </tr>  
    <tr>  
        <td width="1%">&nbsp;</td>  
        <td width="91%" bgcolor="#007095"> 
        <table border="1" width="94%" bgcolor="#007095" cellspacing="0" bordercolor="#9BE3F9"> 
            <tr> 
                <td width="11%" align="right" rowspan="6" valign="top"><b> 
                <font size="2" face="Arial" color="#9BE3F9">Nintendo&nbsp;&nbsp; 
                </font></b></td> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Nes" name="type"><font size="2" face="Arial" color="#9BE3F9">(Super)  
                Nintento Entertaining System ((S)NES)</font></td> 
            </tr> 
            <tr> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Gameboy" name="type"><font size="2" face="Arial" color="#9BE3F9">Gameboy  
                (Color)</font></td> 
            </tr> 
            <tr> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="64" name="type"><font size="2" face="Arial" color="#9BE3F9">64</font></td> 
            </tr> 
            <tr> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Gamecube" name="type"><font size="2" face="Arial" color="#9BE3F9">Gamecube</font></td> 
            </tr> 
            <tr> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Ds" name="type"><font size="2" face="Arial" color="#9BE3F9">DS</font></td> 
            </tr> 
            <tr> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Wii" name="type"><font size="2" face="Arial" color="#9BE3F9">Wii</font></td> 
            </tr> 
            <tr> 
                <td align="right" colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td width="11%" align="right" rowspan="4" valign="top"><b> 
                <font size="2" face="Arial" color="#9BE3F9">PlayStation&nbsp;&nbsp; 
                </font></b></td> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Ps1" name="type"><font size="2" face="Arial" color="#9BE3F9">1</font></td> 
            </tr> 
            <tr> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Ps2" name="type"><font size="2" face="Arial" color="#9BE3F9">2</font></td> 
            </tr> 
            <tr> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Ps3" name="type"><font size="2" face="Arial" color="#9BE3F9">3</font></td> 
            </tr> 
            <tr> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Psp" name="type"> 
                <font face="Arial" size="2" color="#9BE3F9">Portable (PSP)</font></td> 
            </tr> 
            <tr> 
                <td align="right" colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td width="11%" align="right" rowspan="2" valign="top"><b> 
                <font size="2" face="Arial" color="#9BE3F9">Xbox&nbsp;&nbsp; 
                </font></b></td> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Xbox" name="type"><font size="2" face="Arial" color="#9BE3F9">1</font></td> 
            </tr> 
            <tr> 
                <td width="88%"> 
                <input type="radio" onclick="codename()" value="Xbox360" name="type"><font size="2" face="Arial" color="#9BE3F9">360</font></td> 
            </tr> 
            <tr> 
                <td align="right" colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td width="11%" align="right"><b> 
                <font size="2" face="Arial" color="#9BE3F9">Anders&nbsp;&nbsp; 
                </font></b></td> 
                <td width="88%">

<script type="text/javascript">
<!-- 
function codename() {
 document.getElementById('textname').disabled = !document.getElementById('anders').checked;
 };
//--> 
</script>

                <input type="radio" id="anders" onclick="codename()" name="type" value="ON"><font size="2" face="Arial" color="#9BE3F9">nl. 
                <input type="text" disabled name="type" id="textname" size="20"></font></td> 
            </tr> 
        </table> 
        </td>  
        <td width="6%">&nbsp;</td>  
    </tr>  
    <tr>  
        <td width="1%">&nbsp;</td>  
        <td colspan="2" align="right"><input style="background-color:#9BE3F9;border: 2 solid #0099CC;color:#007095;" type="submit" name="verstuurja1" value="Versturen"</td>  
    </tr>  
    <tr>  
        <td width="1%">&nbsp;</td>  
        <td colspan="2">&nbsp;</td>  
    </tr>  
    <tr>  
        <td width="1%">&nbsp;</td>  
        <td colspan="2">&nbsp;</td>  
    </tr>  
    <tr>  
        <td width="1%">&nbsp;</td>  
        <td colspan="2">&nbsp;</td>  
    </tr>  

</table>  
      
    </form> 
    <? 
    } 
    ?> 
</body>
</html>
Het 'gebeurt' hier:
PHP:
function codename() {
 document.getElementById('textname').disabled = !document.getElementById('anders').checked;
 };

<input type="radio" id="anders" onclick="codename()" name="type" value="ON">
<input type="text" disabled name="type" id="textname" size="20">
maar alle andere radio-buttons hebben ook de onclick zodat ze het text-veld weer op disabled zetten.


Vr.Gr. Egel.
 
Bedankt!!
Het is eigenlijk zo logisch :p
Nu kan ik weer verder :D
Nogmaals heel hartelijk bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan