php combobox

Status
Niet open voor verdere reacties.

migthy84

Gebruiker
Lid geworden
13 okt 2009
Berichten
580
Beste Helpmijer

Weet iemand uw ik van een array een combobox kan maken het liefst geen enkele array maar een multidimensionale array zoals hier onder

array[0][0] = combobox 1
array[0][1] = waarde 1
array[0][2] = waarde 2

array[1][0] = combobox 2
array[1][1] = waarde A
array[1][2] = waarde B
array[1][3] = waarde C

array[2][0] = combobox 3
array[3][1] = waarde 1

etc ..

De uitkomt van het voorbeeld is 3 comboboxen met waarde.
Combobox 1 bevat : waarde

statische code is dit
Code:
<form name="comboboxes">
<p>
<select name="combobox_1" size="1" onChange=">
<option>Waarde 1</option>
<option>Waarde 2</option>
</select>
<select name="combobox_2" size="1">
<option> Waarde A </option>
<option> Waarde B </option>
<option> Waarde C </option>
</select>
<select name ="Combobox_3" size="1">
<option> Waarde 1 </option>
</select>
<input type="button" name="test" value="Go!"
onClick="go()">
</p>

Kan iemand me hier mee helpen.
Het doorlopen van de array is geen probleem. Alleen de option en de select maken wel
 
Als het doorlopen van de array geen probleem is, zal een option of een select veld echo'en ook geen probleem zijn toch?
PHP:
<?php
	$data = array(
		array("combobox 1","waarde 1","waarde 2"),
		array("combobox 2","waarde A","waarde B","waarde C"),
		array("combobox 3","waarde 1")
	);
	foreach ($data as $vraag) {
		foreach ($vraag as $k => $optie) {
			if ($k == 0) {  // 0 bevat de naam voor combo box?
				echo "<select name='".$optie."'>\n";
			} else {
				echo "<option value='".$optie."'>".$optie."</option>\n";
			}
		}
		echo "</select>\n";
	}
?>
 
In principe wil ik een generiek script maken met waar bij op array niveau combobox's aan kan en deze dan worden dan ergens om op een pagina gezet kan worden. Op dit moment heb ik aangepast.

De volgende stap die ik wil gaan maken er connecties in te maken.

Voorbeeld:

De kleur rood hoort bij een jas ,auto en fiets
De kleur zwart hoort bij een auto, fiets

Wanneer je een auto kiest mag de volgende combobox dus zwart/ rood bevatten.
Wanneer je een jas kiest mag de volgende combobox alleen rood bevatten

En andersom natuurlijk ook. Als je een zwart kiest krijgt kan je alleen auto en fiets kiezen,

daarna wil ik een combobox maken als object en deze vervolgens te plaatsen via de lay-out. Ik heb begrepen dat tekstvelden en zo wel gekopieerd kunnen worden

uiteindelijk dient ik geselecteerde waarde weer in een database te zetten
 
Je kunt de code ook herschrijven zodat de php mode geopend en gesloten wordt zodat de select e.d. niet in de echo zitten.

dwz:
PHP:
if ( $a ==$b ) { echo '<option name="a">' }
wordt:
Code:
<?php if ( $a == $b ): ?>
<option name="a">
<?php endif; ?>

Principe blijft hetzelfde.
 
Hoe bedoel je? Als het ingezonden wordt? Dan worden alle waarden in $_POST gestopt.
 
Het systeem dient interactie te worden. Op dit moment worden een waarde in combobox 1 invult moeten er waarden in combobox 2 verander te kunnen worden.

Voorbeeld :

product Jas heeft de kleuren rood ,groen, blauw, paars
product Auto heeft de kleuren rood , groen,geel,lila

in combobox 1 kan je het product beslissen, maar ik wil er ook voor zorgen dat als je bij combobox 2 begint combobox 1 veranderd.

het probleem ligt echter dat er naar de $_post nog met een gedeelte van de data moet gebeuren. Deze gaan via mijn xmlwriter een xml bestaand de database in
 
Als je wil dat de comboboxen veranderen zodra de user ergens op klikt, dan kom je uit bij Javascript / AJAX
 
php naar javascript variabele is niet zo moeilijk zo bijvoorbeeld:
PHP:
<script type="text/javascript" language="javascript">
<!--
<?php 
$var1='value1';
$var2='value2';
echo "firstVar = ".$var1.";";
echo "2ndVar = ".$var2.";";
?>
// -->
</script>
als het dan naar de browser gestuurd word dan word het dit (dit zie je in de bron code)
HTML:
<script type="text/javascript" language="javascript">
firstVar=value1;
2ndVar=value2;
</script>


anders om is niet mogenlijk! :)(oeps zie volgende bericht)
dat komt omdat php serverside is en javascript client-side,
eerst word de php gedaan en daarna gaat je javascript aan het werk in de browser,
dit is ook de reden dat je zonder een een bepaald programma php niet offline kan draaien en javascript wel en ook de rede dat je php niet in je bron code ziet
 
Laatst bewerkt:
kan iemand me hier verder mee helpen
get1.php is
Code:
<?php
		$darray = new array();
		$darray[0][0] = "combo";
		$darray[0][1] = "select";
		$darray[0][2] = "test";
		$darray[1][0] = "abc";
		$darray[1][1] = "waarde2";
		$darray[2][0] = "Waarde3";
?>

select1.js =

Code:
var xmlhttp;

function showUser(str)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
 
 xmlhttp.open("GET",url,true);
var url="getXml.php";
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;

mijn select1.hmtl =

Code:
<html>
<head>
<script type="text/javascript" src="select1.js"></script>
</head>
<body>

<form>
Select a User:
<select name="users" onchange="showUser(this.value)">

</select>
</form>
<br />
<div id="txtHint"><b>info below.</b></div>

</body>
</html>


Deze code wil de array niet ophalen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan