formulier

Status
Niet open voor verdere reacties.
Ok cool, het werk :thumb:

Nog een vraag,
hoe kan ik een aangemaakte row wissen? met javascript?

alvast bedankt
 
dat kan met table.deleteRow(rowIndex);

de eerste rij heeft een index van 0, tweede rij 1 etc.

Dus de eerste rij verwijderen:
Code:
var table_formcontainer = document.getElementById("table_formcontainer")
table_formcontainer.deleteRow(0);
 
Maar
waar kan ik dat zetten? helemaal onderaan?
PHP:
<script>
function add_formrow(){
  if (!this.table_formcontainer)
    this.table_formcontainer = document.getElementById("table_formcontainer");

  if (!this.table_formcontainer)
    return;

  var new_row = table_formcontainer.insertRow(-1);
  var new_cell1 = new_row.insertCell(0);
  var new_cell2 = new_row.insertCell(1);
  var new_cell3 = new_row.insertCell(2);

  var new_input1 = document.createElement("input");
  new_input1.type = "text";
  new_cell1.appendChild(new_input1);
  
  var new_input2 = document.createElement("input");
  new_input2.type = "text";
  new_cell2.appendChild(new_input2);

   var new_input3 = document.createElement("select");
   new_input3.name="vervoer[]";
   var options = [<?php echo $datavervoer; ?>] ;
   for (var i = 0; i < options.length; i++)
   {
    var option = document.createElement("option");
    option.value = options[i];
    option.text= options[i];
    try
    {
      new_input3.add(option, null);
    }
    catch(error)  // Internet Explorer houdt zich niet aan de standaard en heeft dit helaas nodig
    {
      new_input3.add(option);
    }
  }
  new_cell3.appendChild(new_input3);  
  }
 
deleteRow(rowIndex);
var table_formcontainer = document.getElementById("table_formcontainer")
table_formcontainer.deleteRow(0);
table_formcontainer.deleteRow(1);
table_formcontainer.deleteRow(2);

zo iets?
 
In een functie met een variable voor het rij-nummer die je aanroept vanuit een link of een knopje
 
Ik zie dat je steeds rij 0 verwijderd. Opzich een oplossing, maar nu is rij 0 dit:
Code:
Naam 	Leeftijd	Vervoer
Die wil je niet weghalen. Ik denk ook dat het mooier is om de laatse rij weg te halen en niet de eerste. En dat kan natuurlijk ook :)

Code:
var table_formcontainer = document.getElementById("table_formcontainer")
if (table_formcontainer.rows.length > 1)
{
  table_formcontainer.deleteRow(table_formcontainer.rows.length-1);
}

Dit verwijderd de laatste rij als er minimaal 2 rijen zijn. Anders doet het niks :)
 
Het blijf zelfde, :) ik ga nog uitzoeken.
De code ziet er nu uit.
PHP:
<script>
function del_formrow(n){
  if (!this.table_formcontainer)
    this.table_formcontainer = document.getElementById("table_formcontainer");

  if (!this.table_formcontainer)
    return;

  table_formcontainer.deleteRow(n);
} 

var table_formcontainer = document.getElementById("table_formcontainer")
if (table_formcontainer.rows.length > 1)
{
  table_formcontainer.deleteRow(table_formcontainer.rows.length-1);
}

function add_formrow(){
  if (!this.table_formcontainer)
    this.table_formcontainer = document.getElementById("table_formcontainer");

  if (!this.table_formcontainer)
    return;

  var new_row = table_formcontainer.insertRow(-1);
  var new_cell1 = new_row.insertCell(0);
  var new_cell2 = new_row.insertCell(1);
  var new_cell3 = new_row.insertCell(2);

  var new_input1 = document.createElement("input");
  new_input1.type = "text";
  new_cell1.appendChild(new_input1);
  
  var new_input2 = document.createElement("input");
  new_input2.type = "text";
  new_cell2.appendChild(new_input2);

   var new_input3 = document.createElement("select");
   new_input3.name="vervoer[]";
   var options = [<?php echo $datavervoer; ?>] ;
   for (var i = 0; i < options.length; i++)
   {
    var option = document.createElement("option");
    option.value = options[i];
    option.text= options[i];
    try
    {
      new_input3.add(option, null);
    }
    catch(error)  // Internet Explorer houdt zich niet aan de standaard en heeft dit helaas nodig
    {
      new_input3.add(option);
    }
  }
  new_cell3.appendChild(new_input3);  
  } 

</script>

<body>
<div id="credit"><b>T e s t</b></div>
<br>

<form method="post" action="volgende.php" name="data">
<fieldset> <legend>
<font color="blue"><b>Aanmeld formulier</b></font></legend><br>
<table id="table_formcontainer">     
	 <tr>
	      <td width="10">Naam</td> <td>Leeftijd<td>Vervoer<td>&nbsp;</td> </td>		   
	 </tr>
	 
</table>
<table>	 
	 <tr>
	      	<td width="500" align="right">[<a href="#" onclick='add_formrow();'>+</a>]</td>
			<td>&nbsp;</td><td>[<a href="#" onclick='del_formrow();'>-</a>]</td>	  
	 </tr>
bedankt
 
De code moet wel in de functie del_formrow he :p En dan kun je de n uit de parameter lijst halen, die wordt dan toch niet gebruikt.
 
Ok het is mij gelukt, dankzij jou hulp.
Nogmaals bedankt.
Deze formulier is de eerste formulier.
Nu heb ik natuurlijk andere probleem.
een formulier maak ik normal bv
PHP:
<form methode=submit action=volgende.php name=data>
<input name=naam><br>
<input name=leeftijd><br>
<select name=vervoer><option>geen</option><option>auto</option>
<option>fiets</option><option>openbaar vervoer</option><br>
<input type=button value=submit name=submit>

op de volgende pagina kan ik zo oproepen
PHP:
<?php
if (isset($_POST["$naam"])) $naam = $_POST["naam"];
if (isset($_POST["$leeftijd"])) $leeftijd = $_POST["leeftijd"];
if (isset($_POST["$vervoer"])) $vervoer = $_POST["vervoer"];
?>
<?php echo $naam; ?><?php echo $leeftijd; ?><?php echo $vervoer; ?>
hoe werk met deze eigenlijk?
 
om de waardes door te geven aan php moet elk input element een naam mee krijgen. Dus dit moet enigzinds veranderd:

Code:
  var new_input1 = document.createElement("input");
  new_input1.type = "text";
  new_cell1.appendChild(new_input1);
  
  var new_input2 = document.createElement("input");
  new_input2.type = "text";
  new_cell2.appendChild(new_input2);

   var new_input3 = document.createElement("select");
   new_input3.name="vervoer[]";
   var options = [<?php echo $datavervoer; ?>] ;
   for (var i = 0; i < options.length; i++)
   {
    var option = document.createElement("option");
    option.value = options[i];
    option.text= options[i];
    try
    {
      new_input3.add(option, null);
    }
    catch(error)  // Internet Explorer houdt zich niet aan de standaard en heeft dit helaas nodig
    {
      new_input3.add(option);
    }
  }
  new_cell3.appendChild(new_input3);  
  }

Naar (iets als) dit:
Code:
  var new_input1 = document.createElement("input");
  new_input1.type = "text";
[COLOR="Red"]  new_input1.name = "naam[]";[/COLOR]
  new_cell1.appendChild(new_input1);
  
  var new_input2 = document.createElement("input");
  new_input2.type = "text";
[COLOR="Red"]  new_input2.name = "leeftijd[]";[/COLOR]
  new_cell2.appendChild(new_input2);

   var new_input3 = document.createElement("select");
[COLOR="Red"]   new_input3.name="vervoer[]";[/COLOR]
   var options = [<?php echo $datavervoer; ?>] ;
   for (var i = 0; i < options.length; i++)
   {
    var option = document.createElement("option");
    option.value = options[i];
    option.text= options[i];
    try
    {
      new_input3.add(option, null);
    }
    catch(error)  // Internet Explorer houdt zich niet aan de standaard en heeft dit helaas nodig
    {
      new_input3.add(option);
    }
  }
  new_cell3.appendChild(new_input3);  
  }

Door de vierkante haakjes achter de naam van de inputs maakt php er een array van. Dan kun je in PHP dus hetzelfde als altijd doen, het enige verschil is dat je een array krijgt van alle elementen met die naam. In PHP moet je de vierkante haakjes weglaten:

PHP:
$naam = isset($_POST["naam"]) ? $_POST["naam"] : Array();
$leeftijd= isset($_POST["leeftijd"]) ? $_POST["leeftijd"] : Array();
$vervoer= isset($_POST["vervoer"]) ? $_POST["vervoer"] : Array();

Wat hier staat is "expressie ? waarde1 : waarde2;"
In kort, als expressie == true, dan pakt hij waarde1, anders waarde2. Dit voorkomt dat $naam nooit geinitialiseerd wordt. Maargoed, nu heb je 3 arrays. Probeer dit script maar eens:

PHP:
<?php
$naam = isset($_POST["naam"]) ? $_POST["naam"] : Array();
$leeftijd= isset($_POST["leeftijd"]) ? $_POST["leeftijd"] : Array();
$vervoer= isset($_POST["vervoer"]) ? $_POST["vervoer"] : Array();

var_dump($naam);
echo "<br /><br />"
var_dump($leeftijd);
echo "<br /><br />"
var_dump($vervoer);
?>
 
http://jawaweb.com

Ik krijg een lege pagina

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Check form</title>
<link href="main.css" type="text/css" rel="stylesheet">
</head>
<body>
<div id="credit"><b>T e s t</b></div>
<br>
<form method="post" action="" name="data">
<fieldset> <legend>
<font color="blue"><b>Check form</b></font></legend><br>
<table>
	<tr>
	    <td><?php
$naam = isset($_POST["naam"]) ? $_POST["naam"] : Array();
$leeftijd= isset($_POST["leeftijd"]) ? $_POST["leeftijd"] : Array();
$vervoer= isset($_POST["vervoer"]) ? $_POST["vervoer"] : Array();

var_dump($naam);
echo "<br /><br />"
var_dump($leeftijd);
echo "<br /><br />"
var_dump($vervoer);
?> </td>

	</tr>
	<tr>
            <td>&nbsp;</td> <td>&nbsp;</td>
			<td><br><input type="submit" name="submit" value=" S u b m i t "></td>
    </tr>
</table>
</form></fieldset>


<br>
</body>
</html>
 
Laatst bewerkt:
Weet je zeker dat je je pagina goed hebt geupload? De HTML zou op zijn minst zichtbaar moeten zijn, maar die ontbreekt ook.
 
waren geen ; achter <br><br>
PHP:
var_dump($naam);
echo "<br /><br />"
var_dump($leeftijd);
echo "<br /><br />"
var_dump($vervoer);

nu kan ik het zien, maar hoor het zo dan?
array(2) { [0]=> string(5) "Anton" [1]=> string(7) "Bernard" }
array(2) { [0]=> string(1) "6" [1]=> string(1) "7" }
array(2) { [0]=> string(4) "Auto" [1]=> string(7) "Brommer" }

http://jawaweb.com

aangepast ; met .[punt]
PHP:
<?php echo "<br /><br />".var_dump($leeftijd);
echo "<br /><br />".var_dump($vervoer);?>
 
Laatst bewerkt:
is het ook mogelijk om op volgorde en netjes te zetten zoals op de tabel?

dus ipv
array(2) { [0]=> string(5) "Anton" [1]=> string(7) "Bernard" }
array(2) { [0]=> string(1) "6" [1]=> string(1) "7" }
array(2) { [0]=> string(4) "Auto" [1]=> string(7) "Brommer" }

wordt het zo
Anton 6 Auto
Bernard 7 Brommer

Alvast bedankt
en een fijne kerstdagen
 
het is alleen een voorbeeld om te laten zien dat je arrays krijgt. Je hebt nu dus gewoon een array van strings. Daar kun je mee doen wat je wilt.
 
Database slaat enkel de laatste array.

http://jawaweb.com
Na invullen en verzenden van formulier, hoe kan ik aantal aangemelde kinderen op de tabel vertonen?.
res1.jpg

Database slaat enkel de laatste array.

PHP:
<?php	
	$kindernaam = isset($_POST["kindernaam"]) ? $_POST["kindernaam"] : array();
		foreach($kindernaam as $value1); 
	$leeftijd = isset($_POST["leeftijd"]) ? $_POST["leeftijd"] : array();        
		foreach($leeftijd as $value2);
	$les = isset($_POST["les"]) ? $_POST["les"] : array();
		foreach($les as $value3);
$kinddata = $value1." - ".$value2." - ".$value3;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Bevestiging</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="main.css" type="text/css" rel="stylesheet">
</head>

<body>
<?php
require "db.php";
// Data Form
if (isset($_POST["naam"])) $naam = $_POST["naam"];
if (isset($_POST["adres"])) $adres = $_POST["adres"];
if (isset($_POST["postcode"])) $postcode = $_POST["postcode"];
if (isset($_POST["woonplaats"])) $woonplaats = $_POST["woonplaats"];
if (isset($_POST["telefoon"])) $telefoon = $_POST["telefoon"];
if (isset($_POST["email"])) $email = $_POST["email"];


//echo $naam.$adres.$postcode.$woonplaats.$telefoon.$email.$kinddata.
$sql = "INSERT INTO aanmelding VALUES (NULL, '$naam', '$adres', '$postcode', '$woonplaats', '$telefoon', '$email', '$kinddata')";
$res = mysql_query($sql);
if ($res){
}

        require "db.php";
		$ord = mysql_query("SELECT aanmldid FROM aanmelding ORDER BY aanmldid DESC LIMIT 1");
		$row = mysql_fetch_row($ord);
		
		if (!empty($email)){
	    $ontvanger = $email;
	    }

		
	    require "config.php";
		$aan = AANMELDEN;
		$onderwerp = "Aanmelding";
		$gegevens = "Geachte dhr/mv $naam, <br><br>
Hierbij de bevestiging van uw aanmelding.<br>
We hebben de onderstaande gegevens in onze database opgenomen (zie hieronder alle gegevens die u heeft ingevuld): <br>
<br>
<table>
	<tr><td width=190>Aanmelding nr.</td><td>:</td><td>$row[0]</td></tr>
	<tr><td>Naam</td><td>:</td><td>$naam</td></tr>
	<tr><td>Adres</td><td>:</td><td>$adres</td></tr>
	<tr><td>Postcode</td><td>:</td><td>$postcode</td></tr>
	<tr><td>Woonplaats</td><td>:</td><td>$woonplaats</td></tr>
	<tr><td>Telefoon nummer</td><td>:</td><td>$telefoon</td></tr>
	<tr><td>E-Mail</td><td>:</td><td>$email</td></tr>
	<tr><td>Kind data</td><td>:</td><td>$kinddata</td></tr>
</table>
";

		$headers = "Van: ".$naam." <".$email.">\r\n";    
        $headers .= "MIME-Version: 1.0\r\n";
		$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        $headers .= "Reply-To: ".$naam." <".$email.">\r\n"; 
        @mail($aan, $onderwerp, $gegevens, $headers);
		

?>

<h2>&nbsp;&nbsp;Bedankt voor uw aanmelding, u heeft ingevuld:</h2><br>
<fieldset><legend><font color="#FE9A2E"><b>Aangemeld</b></font></legend>
<table>
	<tr>
		<td width="190">Aanmelding nr.</td><td>:</td>
		<td><?php
		    require "db.php";
			$ord = mysql_query("SELECT aanmldid FROM aanmelding ORDER BY aanmldid DESC LIMIT 1");
			$row = mysql_fetch_row($ord);
			echo $row[0];
			?></td></tr>
	<tr><td>Naam</td><td>:</td><td><?php echo $naam;?></td></tr>
	<tr><td>Adres</td><td>:</td><td><?php echo $adres;?></td></tr>
	<tr><td>Postcode</td><td>:</td><td><?php echo $postcode;?></td></tr>
	<tr><td>Woonplaats</td><td>:</td><td><?php echo $woonplaats;?></td></tr>
	<tr><td>Telefoon nummer</td><td>:</td><td><?php echo $telefoon;?></td></tr>
	<tr><td>E-Mail</td><td>:</td><td><?php echo $email;?></td></tr>	    
</table>
<br>
<table class="tabel" cellpadding="4" cellspacing="0">
	<tr bgcolor="#e5e5e5">
	    <td width="100">
		Kindnaam</td>
	
        <td width="100">
		Leeftijd</td>
	
        <td width="150">
		Les</td>
	</tr>
	<tr>
	    <td width="100">
		<?php 
		$kindernaam = isset($_POST["kindernaam"]) ? $_POST["kindernaam"] : array();
		foreach($kindernaam as $value1) echo $value1.'<br />';
		?> 
		</td>
	
        <td width="100">
		<?php
		$leeftijd = isset($_POST["leeftijd"]) ? $_POST["leeftijd"] : array();        
		foreach($leeftijd as $value2) echo $value2.'<br />'; 
		?> 
		</td>
	
        <td width="150">
		<?php
		$les = isset($_POST["les"]) ? $_POST["les"] : array();
		foreach($les as $value3) echo $value3.'<br />';    
		?>
        </td>
	</tr>
</table>
</fieldset><br>
<fieldset><legend><font color="blue"><b>D A T A B A S E</b></font></legend>
<br>
<?php
//open database connection
require "db.php";
//delete data from tabel
if ($_GET["mode"]){
	if ($_GET["mode"] == "del"){
		mysql_query("DELETE FROM aanmelding WHERE aanmldid = '$_GET[aanmldid]'");
	}
}
//select tabel 
$sql = "SELECT * FROM aanmelding ORDER BY aanmldid DESC";
$res = mysql_query($sql);
?>
<table class="tabel" cellpadding="4" cellspacing="0">
	<tr bgcolor="#e5e5e5">
          <td><span>ID</span></td>
          <td><span>Naam</span></td>
          <td><span>Adres</span></td>
          <td><span>Postcode</span></td>
          <td><span>Woonplaats</span></td>
          <td><span>Telefoon</span></td>
          <td><span>Email</span></td>
          <td><span>Kind data</span></td>
	</tr>
<?php
//display data from selected tabel
	while ($row = mysql_fetch_row($res)){
		echo "<tr>
<td valign=top><span>$row[0]</span></td> 
<td valign=top><span>$row[1]</span></td> 
<td valign=top><span>$row[2]</span></td> 
<td valign=top><span>$row[3]</span></td> 
<td valign=top><span>$row[4]</span></td> 
<td valign=top><span>$row[5]</span></td> 
<td valign=top><span>$row[6]</span></td>
<td valign=top><span>$row[7]</span></td>
</tr>";
}
?> 
</table></fieldset>
</body>
</html>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan