Hi All,

Ik heb een x aantal functies in 1 pagina. Deze functies roepen elkaar aan wanneer nodig en 2 daarvan bevatten arrays.

Nu heb ik "if tagerror == false" de functie tagpage(); laten aanroepen.
In deze functie word een formulier weer gegeven met daaronder een tagcloud.
De tagcloud reageert op 2 arrays, welke ieder een functie heeft. In deze array staat hoe ze moeten weer gegeven worden. Nu heb ik een functie onder het formulier staa which_one();

Dit is de code:

function which_one() {
	if (isset($_POST['submittagform'])) {
	primary_array();
	} else {
		changeable_array();
	}
}

Standaard wil ik de functie primary_array() hebben om asc te sorteren. Dit is al ingesteld in de functie.
Maar als men middels het formulier bv desc hebben gekozen wil ik dat changeable_array word aangeroepen.

is dit mogelijk ?
<?php

function which_one() {
if (isset($_POST['submittagform'])) {
return = primary_array();
} else {
return changeable_array();
}
}

// gebruik zo:
$altijd_goed = which_one(); // is dus gevuld met primary_array of changeble_array
?>
Helaas, maar dat werkt niet :(
Dit is functietagpage()

function tagpage() {
?>
<form method="post" action="">
<table class="tablenoborder">
	<tr>
		<td style="width:33%;">
			<div class="choicestagcloud">Choose amount of tags:</div>
						<select name="amount">
						<option value="25">25</option>
						<option value="50">50</option>
						<option value="75">75</option>
						<option value="100">100</option>
						<option value="125">125</option>
						<option value="150">150</option>
						<option value="175">175</option>
						<option value="200">200</option>
						<option value="225">225</option>
						<option value="250">250</option>
						</select>						
		</td>
		<td style="width:33%;">
						<div class="choicestagcloud">Order by:</div>
						<select name="orderby">
						<option value="name">Name</option>
						<option value="count">Count</option>
						</select>
		</td>
		<td style="width:33%;">
						<div class="choicestagcloud">order:</div>
						<select name="order">
						<option value="ASC">Ascending</option>
						<option value="DESC">Descending</option>
						<option value="RAND">Random</option>
						</select>
		</td>
	</tr>
	<tr>
		<td>
						<input type="submit" name="submittagform" value="Change it">
		</td>
	</tr>
</table>
<input type="hidden" name="change" value="yes">
</form>
<?php

which_one();
} // end function tagpage
?>

De functie zoals jij zei werkte helaas niet. Syntax error op de = .
Dit zijn de functies die aangeroepen worden.
Mis helpt dat wat meer ?

<?php
function primary_array() {
$p = array( 
		'smallest' => 12,
		'largest' => 26,
		'unit' => px,
		'number' => 10,
		'format' => flat,
		'seperator' => \n,
		'orderby' => name,
		'order' => RAND,
		'link' => view,
		'taxonomy' => post_tag,
		'echo' => true );
wp_tag_cloud($p);
}
function changeable_array() {
$s = array( 
		'smallest' => 12,
		'largest' => 26,
		'unit' => px,
		'number' => $_POST['amount'],
		'format' => flat,
		'seperator' => \n,
		'orderby' => $_POST['orderby'],
		'order' => $_POST['order'],
		'link' => view,
		'taxonomy' => post_tag,
		'echo' => true );
wp_tag_cloud($s);
}
?>
Mijn foutje
Mijn foutje
Waar is de functie wp_tag_cloud()?

ipv de return kan je wellicht eens echo proberen.
die = moet er toch gewoon uit?? M.i. hoort een return net als een echo zonder '='-teken?
Je hebt gelijk. Ik wilde het eerst in een variabele zetten en later returnen, maar dat leek mij ook onzin. Toen vergeten die = weg te halen.
Onderin heb ik hem trouwens niet staan (dus bij die changeble_array() ). Ik heb mijn bovenstaande bericht niet gewijzigd.
Eddy Erkelens schreef op 02.01.2010 20:04
Waar is de functie wp_tag_cloud()?

ipv de return kan je wellicht eens echo proberen.


Echo hoort niet in een functie thuis. Return is de goede oplossing. Als dit niet werkt is het datamodel fout.
@ Justin
Je hebt gelijk, ik noemde het even ter vergelijking.

@Laurens,
als je het nu zo doet, moet het toch goed zijn?

<?php
function which_one() {
if (isset($_POST['submittagform']) && $_POST['submittagform'] == 'desc') {
return primary_array();
} else {
return changeable_array();
}
}
?>

Reageren