Toon posts:

[php] een variabele variabel maken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een forum aan het schrijven, en admins kunnen berichten editten...nu, dit lukt allemaal...er zit alleen een bug in. Ik laat alle berichten tevoorschijn komen in texarea's...de naam van die textarea=naam...maar ik moet die 'naam' variabel maken anders werkt het niet...moeilijk om uit te leggen...dus kijk maar eens hier: www.beekfriet.nl/forum.php ga naar het cafe en topic 1...je ziet nu bericht 1 en bericht 2...tik nu in de url &admin=true

er verschijnt een edit knop...druk hier maar op.. nu is het zo dat je alleen bericht 2 kan editten omdat dat de laatste entry in de array is..

dit komt dus omdat die textarea 1 naam heeft, en dat is 'naam'. Hoe maak ik die variabele nu variabel??
PHP:
1
<?if ($edit) { echo "<form method='post'>"; echo "<TABLE>"; if ($edit == "postalles") {         $sql = "SELECT * FROM forum_posts WHERE categorie=$categorie AND topic=$topic ORDER BY id ASC";         $resultaat = mysql_query($sql); while ($r = mysql_fetch_object($resultaat)) { echo "<TR><TD>verander naam: <TD><textarea name='naam'>$r->berichten</textarea></TD></TR>"; echo "<input type='hidden' name='id' value='$r->id'>"; echo "<TR><TD><a href=$PHP_SELF?delete=post&amp;id=$r->id>verwijder deze post</a>"; } echo "<input type='hidden' name='type' value='post'>"; } echo "</TABLE>"; echo "<input type='submit' name='verander' value='wijzig'>"; exit(); } if ($verander) {                                                              //POST EDITTEN     if ($type == "post") { $sql = "UPDATE forum_posts SET berichten = '$naam' WHERE id = '$id'"; mysql_query($sql);     } ?><script>location.href="forum.php";</script><? } ?>

Verwijderd

als je ze in je code steeds name=naam1 ... naam100 geeft, dan kan je gewoon met je een for loopje, en $HTTP_POST_VARS [], ze uitlezen.

Verwijderd

Topicstarter
dus hoe zou het in dit geval zijn? want ik weet niet zeker wat je bedoelt.?!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

topictitel change
en zet je code eens tussen [code]..[/ code] of [php]..[/ php] tags

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

van een variabele een variabel maken?
zo iets?
$var1 = "blaat"
$blaat = "wooi"

en $$var1 zou dan "woei" als uitput moeten geven
toch?

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

nee dat is denk ik niet wat hij bedoelt

als ik m goed begrijp heeft hij een variabel aantal input velden die gesubmit worden, en moet hij dus voor elk inputvelt een aparte naam hebben

DaBOON: je kunt ze ook allemaal dezelfde naam geven, maar er [] achter zetten

dan krijg je een array terug met de waarden van alle velden erin


zoiets dus, in html:
<textarea name="velden[]">

en dan krijg je een array met de naam 'velden', die je gewoon kunt doorlopen met velden[0] .. velden[n - 1] (waarbij n het aantal textarea's is)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

over die arrays dat weet ik allemaal nog niet
ben ook nog maar uber-noob met php :)
maar ooit ... ooit ... ooit hoop ik d'r iets te snappen

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Verwijderd

kan je arrays posten op die manier? phat...

dat is inderdaad de beste oplossing.
PHP:
1
<?for ($i = 0; $i < count ($naam); $i++){   $huidige_naam = $naam[$i];   // Bewerkingen met $huidige_naam}?>

en dan moet je je textvelden dus:
code:
1
2
3
4
5
6
7
<textarea name=naam[0]>

tot en met

<textarea name=naam[100]>

of 50 of heoveel je er nodig hebt

dan kan je dus met dat for loopje je bewerking doen, of je kan elk textveldje direct aanspreken door het nummer mee te sturen. en dat dus tussen de [] zetten: $naam[$id] zoiets.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op zondag 16 juni 2002 00:18 schreef K-Mile het volgende:
en dan moet je je textvelden dus:
[code]<textarea name=naam[0]>

tot en met

<textarea name=naam[100]>
nee, je moet ze gewoon allemaal naam[] noemen, php doet de rest :)

zelfde effect als dit:
PHP:
1
<?$blaat[] = 3;$blaat[] = 2;$blaat[] = 6;?>

dat maakt van blaat dus een array met 3 elementen, met { 3, 2, 6 } erin :)

.edit: hmmz irritante html rechten voor modjes |:( :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op zaterdag 15 juni 2002 23:31 schreef Scarecrow het volgende:
van een variabele een variabel maken?
zo iets?
$var1 = "blaat"
$blaat = "wooi"

en $$var1 zou dan "woei" als uitput moeten geven
toch?
wooi bedoel je ;) :+

ja inderdaad :)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

Topicstarter
Ik ben wel wat wijzer...alleen het lukt nog steeds niet :-) ik kan alleen de laatste post editten...

zou iemand voor mij precies kunnen laten zien hoe het in mijn script moet??

enneh...bedankt he allemaal!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

in je form:
code:
1
2
3
4
<INPUT TYPE="text" NAME="frm_field[]" VALUE="1">
<INPUT TYPE="text" NAME="frm_field[]" VALUE="2">
<INPUT TYPE="text" NAME="frm_field[]" VALUE="3">
<INPUT TYPE="text" NAME="frm_field[]" VALUE="4">

in je php:
PHP:
1
<?foreach ($_REQUEST["frm_field"] as $value) {  echo $value;}?>

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Topicstarter
ehhmm...nopez...dit werkt niet...volgens mij moet het volgens die 'for' manier..maar hoe moet dát in mijn script??

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 11:57

TheDane

1.618

Op zondag 16 juni 2002 14:21 schreef DaBOON het volgende:
ehhmm...nopez...dit werkt niet...volgens mij moet het volgens die 'for' manier..maar hoe moet dát in mijn script??
ja eehhh

probeer zelf ook eens wat ?

alles wat je moet weten staat er toch al ?
of moeten we 't nog voor gaan lezen

Verwijderd

Probeer inderdaad eerst even te zoeken op http://www.php.net naar loopjes, dan zie je meteen welke het beste is.

En door er zelf achter te komen is toch de manier waarop je het beste leert hoe het moet.
Pagina: 1