Toon posts:

[PHP] data van keuzeijst naar textarea

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik weet hoe je gegevens uit een databsehaalt en die in een keuzelijst of textarea laat zien.

Het is nu de bedoeling dat de erste keer dat een pagina geladen wordt alle emailvraagnummmers in een lijst worden laten zien (dat werkt). De gebruiker selecteert dan een van die vraagnummers en drukt op een knop (om te refreshen). Dan moet het bericht dat bij die vraagnummer hoort in een textvak onder die keuzeljist verschijnen.

Heb al een hoop zitten klooten (kun je aan de // in mijn code zien) en heb het op een paar verschillende manieren geprobeerd maar hij laat of niks zien of krijg een foutmelding van een conversiefout.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?
session_start();
session_register('show');
//session_register('bla');
//session_register('bla2');
session_register('t');
?>

<?php
include "begin.php";
?>

<FORM METHOD=POST ACTION="ttt.php">
<?php

$con = sybase_connect("team24", "arjen", "kosmix") or die("<OPTION>Database error!</OPTION></SELECT>");
sybase_select_db("bizcane", $con);

$query2 = "SELECT BERICHT FROM VRAGEN WHERE VRAAGNUMMER = $bla"; //bla is dus de naam van de keuzelijst, moet hier [0] bij?
$result3 = sybase_query($query2, $con);
//$i3 = 1;
//$i4 = 1;
//print $i3;
//$result4 = sybase_num_rows($result3);
//for($i=0; $i < $result4; $i++){
//$result5 = sybase_num_fields($result3);
//for($i2=0; $i2 < $result5; $i2++){
$result4 = sybase_fetch_array($result3);
$result5 = $result4[0];
$result7 = stripslashes($result4[1]);
//$result7 = sybase_result($result3,0,0); //krijg foutmelding van Sybase: Bad row offset (0), het is maar 1 datacel, of toch array gebruiken?
//$result7 = ereg_replace("(\r\n)|(\n)|(\r)", "\n", $result7);
//$result5 = "blablabla";
    

$query = "SELECT VRAAGNUMMER FROM VRAGEN";
//$query = "SELECT VRAAGNUMMER, ONDERWERP, EMAILADRES FROM VRAGEN ORDER BY ONDERWERP";
//$queryv = "SELECT VRAAGNUMMER FROM VRAGEN";
$result = sybase_query($query, $con);
//
//$resultv = sybase_query($queryv, $con);
$teller = sybase_num_rows($result);
echo '<SELECT NAME="bla" SIZE="'; //hier wordt de keuzelijst menu gemakt, dar werkt
echo $teller;
echo '" MULTIPLE>';
for($i=0; $i < $teller; $i++){
$teller2 = sybase_num_fields($result);
echo '<OPTION VALUE="';
echo $i;
echo '">';
for($i2=0; $i2 < $teller2; $i2++){
$result2 = sybase_result($result, $i, $i2);
echo $result2;
echo ' ';
}
}
echo '</SELECT>';
echo '<INPUT TYPE=SUBMIT NAME="show" VALUE="Show mail">';
?>
<br>
<br>
<TEXTAREA NAME="result7" COLS=75 ROWS=10><?php print ("$result7"); /* hier zou dus de inhoud van de bericht worden laten zien */ ?></TEXTAREA>
</FORM>
<?php
include "end.php";
?>

Hier is trouwens de link:
http://145.92.3.30:7001/080102/ttt.php

Je kiest een nummer uit de ljist, drukt op knop, maar de het bericht dat bij die nummer hoort wordt niet laten zien in de textarea.

Verwijderd

doe ff phptags ipv code tags

Verwijderd

is volgens mij heel simpel, gewoon een flag meegeven als je het formulier submit. oftewel een hiddenfield aanmaken met waarde 1 en naam 'flag'. Als de pagina geladen wordt, voer je de query alleen uit als ($flag == 1) en anders zet je het $result = "" er komt dan niets in de textarea. en ff btw, is het niet makkelijker en overzichtelijker om je echo's iets anders aan te pakken:
ipv:
PHP:
1
2
3
4
5
<?
echo ("<OPTION VALUE='");
echo $i;
echo ("'>"); enz.
?>

te doen:
PHP:
1
2
3
<?
echo ("<OPTION VALUE='$i'>");
?>

dit werkt namelijk even goed (beter zelfs) en is een stuk overzichtelijker
Succes

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

volgens mij geef je result7 helemaal geen waarde :?

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Ja, sorry, had met isset twee ker bjina dezelfde formulier en had de verkerde hier gekopieerd. Wordt nu dteeds alles uitgevoerd, en heb nu de hele ebstand hier neergezet.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op zaterdag 12 januari 2002 14:53 schreef spoooky het volgende:
Ja, sorry, had met isset twee ker bjina dezelfde formulier en had de verkerde hier gekopieerd. Wordt nu dteeds alles uitgevoerd, en heb nu de hele ebstand hier neergezet.
tja maar dit is gewoon een kwestie van debuggen
$result7 = stripslashes($result4[1]);
bevat $result4[1] een waarde?
zo ja haal dan die stripslashes is weg
zo nee : tada
enz enz
heb niet goed naar je code gekeken (volgende keer mag je // regels wel weglaten maakt het overzichtelijker) maar ik denk dat je met wat kleine dingen de fout redelijk snel moet kunnen vinden

Doet iets met Cloud (MS/IBM)

Pagina: 1