textveld ==> jumpmenu

Status
Niet open voor verdere reacties.

JB'tje

Gebruiker
Lid geworden
31 mei 2004
Berichten
556
hallo weer,

ik ben weer eens bezig met mijn kleine "projektje" en daarbij moet men een textveld invullen. de gegevens uit dit textveld moet in een jumpmenu komen, dit lukt mij dus weer eens niet...

men vult b.v. dit in: 1zeer goed, 2goed, 3gaat, 4beetje goed, 5slecht, 6wil je niet weten,

als je dit in $_POST['text'] hebt staan, en het gewoon in een array zet $text = array($_post['text']) en het dan een voor een af wilt drukken in een ' jumpmenu ' dan krijg je maar een optie, waar als die dingen in staan. daarom moeten de getallen en komma's nog weggehaald worden en alles GOED in de array worden gezet. mijn vraag is, hoe doe ik dat???

(ik zat te denken aan substr() en strstr() maar ik ben er niet uit gekomen.)

JB'tje
 
Laatst bewerkt:
Geplaatst door JPeetje
Wat een heerlijk vage uitleg :rolleyes::p
ja, daar houd ik nou eenaal van :)

ik zal beginnen bij het begin: Ik downloade het script van jou (startpagina) en als eerst moet je dan in de config.php fille alle gegevens invullen. daarna wordt automatisch de database en tabellen aangemaakt.

aangezien het de bedoeling is dat een n00b ook dat script moet kunnen gebruiken dacht ik, als hij nou eens NIET die config fille hoeft te openen maar alleen een fille hoeft te openen (met internet brouwser) dan is dat misschien wat makkelijker.

dus, ik heb nu een site gemaakt waar de 'maker van het script' ALLE strings kan invullen, en kan bepalen wat er in moet staan, of dat het door de gebruiker ingevuld moet worden. Nu kan de maker van het script ook in een textveld de gegevens van een jumpmenu invullen, door b.v. in te vullen: '1goed, 2gaat, 3slecht,'
dan kan de gebruiker kiezen ui goed gaat slecht , als andwoord op een vraag.
datgene wat de gebruiker op mijn paginatje heeft ingevuld wordt in een fille geschrefen (die de maker van het script heeft gegeven) en dan heb je dus een mooi installatie script.

aangezien dit wel makkelijk te maken is maak ik dit maar... (had ff geen zin meer in dat spel)

maargoed, nu de vraag nog een keer.
de maker van het script vult in de textbox in: 1goed, 2gaat, 3slecht
nu moet er als uotput uitrollen:
Code:
<select>
  <option value=1>goed</option>
  <option value=2>gaat</option>
  <option value=3>slecht</option>
</select>
Ik zou graag willen weten hoe dit gedaan kan worden...

Alvast bedankt,

JB'tje :thumb:
 
Geplaatst door JB'tje
ik zal beginnen bij het begin: Ik downloade het script van jou (startpagina) en als eerst moet je dan in de config.php fille alle gegevens invullen. daarna wordt automatisch de database en tabellen aangemaakt.

aangezien het de bedoeling is dat een n00b ook dat script moet kunnen gebruiken dacht ik, als hij nou eens NIET die config fille hoeft te openen maar alleen een fille hoeft te openen (met internet brouwser) dan is dat misschien wat makkelijker.
Dan is het een afweging die je moet maken. Als de gebruiker op Linux / Windows server 2003 werkt dan zal hij problemen krijgen doordat het bestand schrijfrechten nodig heeft.
de maker van het script vult in de textbox in: 1goed, 2gaat, 3slecht
nu moet er als uotput uitrollen:
Code:
<select>
  <option value=1>goed</option>
  <option value=2>gaat</option>
  <option value=3>slecht</option>
</select>
Ik zou graag willen weten hoe dit gedaan kan worden...
Niet of heel lastig, wil je het goed laten werken. De scheiding tussen de waarde (1, 2, 3) en de tekst die je daadwerkelijk ziet (goed, gaat, slecht) is er niet.
Nu heb je nog één teken, een getal, als waarde. Dus zou je substr($string,0,1) kunnen gebruiken. Maar zodra het aantal waarden over de 10 gaat voldoet die substr() niet meer. Dan moet je een ingewikkeldere check gaan schrijven, om maar even niet te spreken over het rekening houden met onjuiste invoer.
Ik zou simpelweg een | tussen de waarde en de tekst plaatsen, en hierop scheiden :)
 
Geplaatst door JPeetje
Dan is het een afweging die je moet maken. Als de gebruiker op Linux / Windows server 2003 werkt dan zal hij problemen krijgen doordat het bestand schrijfrechten nodig heeft.
ja, dat klopt... nog niet aan gedacht...
Ik zou simpelweg een | tussen de waarde en de tekst plaatsen, en hierop scheiden :)
ja, dat is ook mogeleik, maar dan weet ik alsnog niet hoe ik daarop moet gaan scheiden... met de code strstr() kun je zoeken naar het teken | maar, vervolgens moet de 2e | gevonden worden, ik weet niet hoe ik dat voor elkaar kan krijgen...

JB'tje :)
 
Met strpos() checken op welke positie de eerste | zit, vervolgens een substr() toepassen tot aan de positie van die eerste |. Dit is dan de waarde. Daarna nog een substr() toepassen vanaf de positie van de | tot aan het einde van de string (strlen()). Dit is dan de tekst :)
 
Na een kwartiertje ben ik tot deze oplossing gekomen...
PHP:
<?PHP

$text = '22|  333|   4444   |    55555    |   666666    |    7777777    |    88888888 |    999999999   ';

$var = '0';
do{
$array[$var] = trim(substr($text, 0, strpos($text, '|'))).'<br>';
$text = substr($text,strpos($text, '|')+1,strlen($text));
$var = $var + 1;
}while(strpos($text, '|'));
$array[$var] = trim(substr($text, 0, strlen($text))).'<br>';

print_r($array);
?>
het werkt en de info komt in een array. het is ook zo dat het niet uitmaakt hoeveel spaties je gebruikt dus, probleempje is opgelost.

JB'tje :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan