Avatar billede straszek Praktikant
02. januar 2008 - 19:32 Der er 11 kommentarer og
1 løsning

behandlinge af input i textarea's

jeg er ved at lave et system til noget spørgeskema system, men jeg kan ikke helt find ud af hvordan jeg skal lave min "side 2"  - der behandler input, og gemmer dem i databasen.


på "side 1" har jeg en masse text-areas hvor man kan ud fylde bestemte ting, antallet af areas kan variere  - disse laves sådan:


$find = mysql_query("SELECT * FROM indrap_felter") or die(mysql_error());
while ($raekke2 = mysql_fetch_array($find)) {
extract($raekke2);
echo"$felt_titel<br><textarea name=\"$id_felt\" cols=18 rows=5></textarea><p>";


Men hvordan skal jeg lave min "side2" så jeg kan få indsat det som brugere indtaster på side 1 i min database?

Det der skal indsætte i min database på "side 2"vil være $id_felt og det indtastede
Avatar billede jakobdo Ekspert
02. januar 2008 - 20:17 #1
Nu viser din $id_felt ikke hvordan du navngiver dine felter, men hvis du navngav dem sådan her:

text_area[]
text_area[]
text_area[]
text_area[]
text_area[]

Så kan du på side 2 løbe den igennem med:

foreach($_POST AS $key => $value)
{
echo 'ID = ' . $key . '<br />';
echo 'Value = ' . $value . '<br />';
}
Avatar billede straszek Praktikant
02. januar 2008 - 20:23 #2
jeg navngiver felterne med et unikt id - for det skal jo bruges når jeg skal gemme opysningerne igen - textarea name=\"$id_felt\" cols=18 rows=5></textarea> - hvor $id_felt er det unikke id

Hvordan skal jeg gøre det hvis jeg skal benytte din metode?
Avatar billede jakobdo Ekspert
02. januar 2008 - 20:26 #3
Overvej at navngiv dem på følgende måde så:

name=\"text_area[$id_felt]\"

Så kan du stadig bruge min løsning fra mit indlæg.
Og ID er netop unikt.
Avatar billede straszek Praktikant
02. januar 2008 - 21:00 #4
jeg kan ikke få det til at spille, hvis jeg brugger din metode får jeg på side to et output der ser sådan ud:
ID = test
Value = 1
ID = text_area
Value = Array

uanset om jeg udfylder en eller 8 tekstfelter.

min kode:
if($test==1){

foreach($_POST AS $key => $value)
{
echo 'ID = ' . $key . '<br />';
echo 'Value = ' . $value . '<br />';
}

}else{
echo "<Form Method=post Action=felter.php?submenux=$_GET[submenux]>
<input type=\"hidden\" name=\"test\" value=\"1\">";

$find = mysql_query("SELECT * FROM indrap_felter") or die(mysql_error());
while ($raekke2 = mysql_fetch_array($find)) {
extract($raekke2);
echo"$felt_titel<br><textarea name=\"text_area[$id_felt]\" cols=18 rows=5></textarea><p>";
}


echo"<input type=\"submit\" value=\gem\">";
Avatar billede jakobdo Ekspert
02. januar 2008 - 21:06 #5
Prøv lige på side 2 at lav:

echo '<pre>';
print_r($_POST);
echo '</pre>';

Og smid input herind.
Avatar billede straszek Praktikant
02. januar 2008 - 21:11 #6
Array
(
    [test] => 1
    [text_area] => Array
        (
            [1] => asdasd
            [2] => dfgdfg
            [3] => ghjghj
            [4] =>
            [5] => 123123
            [6] => 234234
            [7] => 345345
        )

)
Avatar billede jakobdo Ekspert
02. januar 2008 - 21:19 #7
ret lige:
foreach($_POST AS $key => $value)
{
echo 'ID = ' . $key . '<br />';
echo 'Value = ' . $value . '<br />';
}

til:
foreach($_POST['text_area'] AS $key => $value)
{
echo 'ID = ' . $key . '<br />';
echo 'Value = ' . $value . '<br />';
}
Avatar billede straszek Praktikant
02. januar 2008 - 21:22 #8
meget bedre - smid et svar hvis du vil have point :-)
Avatar billede jakobdo Ekspert
02. januar 2008 - 21:30 #9
Svar!
Avatar billede jakobdo Ekspert
02. januar 2008 - 21:42 #10
Takker for point.
Avatar billede straszek Praktikant
05. januar 2008 - 12:54 #11
Lige et ligge uddybende spørgsmål: Kan ovenstående udbygges med en isset, så der kun bliver gjort noget, hvis der er skrevet noget i tekst feltet?

Har prøvet med:
foreach($_POST['text_area'] AS $key => $value)
{


if(isset ($_POST['text_area'])){



echo 'ID = ' . $key . '<br />';
echo 'Value = ' . $value . '<br />';
}
}

Men det funger ikke $key & $value bliver udskrevet under alle omstændigheder
Avatar billede jakobdo Ekspert
05. januar 2008 - 17:31 #12
Ja, men du skal ikke bruge isset.
Du skal nok bruge != '' eller empty()
Empty vil dog melde tom, hvis inputtet er 0 (tallet 0)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester