Avatar billede x4all_dk Nybegynder
05. november 2004 - 14:52 Der er 7 kommentarer og
1 løsning

Input type text problem.

Jeg bruger flg. til at generer noget html på en FORM.

$personer = $db->get_personer();
for ($i=0;$i<sizeOf($personer);$i++){ 
$html .= $personer[$i]['navn'];
$html .= "<input type=text name=nyt_navn> <input type=submit value='change name'><BR>";
}

Dette laver en side med personer i min database, og et felt
hvor man kan skrive et nyt navn ind og gemme dette ved at trykke på [change name].

Mit problem er at få fat i den "rigtige" nyt_navn værdi, da alle
input values hedder det samme.

Jeg kunne løse det ved at gå til en ny side og så indtaste nyt person navn på denne. Men det vil jeg ikke!

Hvordan skal jeg gøre det ?
Avatar billede hmortensen Nybegynder
05. november 2004 - 15:06 #1
Ved at navngive inputfeltet sådan her
nyt_navn[]
Så vil der komme et array med nyt_navn
$personer = $db->get_personer();
for ($i=0;$i<sizeOf($personer);$i++){ 
$html .= $personer[$i]['navn'];
$html .= "<input type=text name=nyt_navn[]><BR>";
}
$html .= "<input type=submit value='change name'>";
Avatar billede schaefner Juniormester
05. november 2004 - 15:11 #2
Du kunnne så også lave en form for hver enkelt felt:

$persons = $db->get_personer();
for ($i=0;$i<count($persons);$i++){ 
  $buffer .= "<form action=\"form.handle.php\">";
  $buffer .= $personer[$i]['navn'];
  $buffer .= "<input type=\"text\" name=\"name" /><br />";
  $buffer .= "<input type=\"submit\" value=\"Change name\" />";
  $buffer .= "</form>";
}
Avatar billede hmortensen Nybegynder
05. november 2004 - 15:12 #3
Ja, det kommer jo an på om man skal kunne rette en eller flere af gangen
Avatar billede schaefner Juniormester
05. november 2004 - 15:13 #4
Så indeholde $_GET['name'] det navn der skal ændres. Der er i øvrigt en lille fejl i ovenstående:

$buffer .= "<input type=\"text\" name=\"name\" /><br />";

Med venlig hilsen
Jesper Sørensen
Avatar billede x4all_dk Nybegynder
08. november 2004 - 11:59 #5
Super tak!

Jeg syntes den generelle løsning er bedst (hmortensens), så han får point.

Jeg giver 15 point ekstra for at svare på hvordan jeg bedst for person_id med.

Så jeg har dette nu:

$personer = $db->get_personer();
for ($i=0;$i<sizeOf($personer);$i++){
$html .= $personer[$i]['navn'];
$html .= "<input type=text name=nyt_navn[]><BR>";
$html .= "<input type=hidden name=person_id_arr[]><BR>";
}
$html .= "<input type=submit value='change name'>";

Jeg kan så søge nyt_navn[] igennem og ved match (index[k]) så finder jeg
person_id ved Index[k] i person_id_arr[].
..men måske er der en bedre metode at gøre det på ?
Avatar billede x4all_dk Nybegynder
08. november 2004 - 12:00 #6
Ups..  Her er det :)

$personer = $db->get_personer();
for ($i=0;$i<sizeOf($personer);$i++){
$id = $personer[$i]['id'];
$html .= $personer[$i]['navn'];
$html .= "<input type=text name=nyt_navn[]><BR>";
$html .= "<input type=hidden name=person_id_arr[] value=$id><BR>";
}
$html .= "<input type=submit value='change name'>";
Avatar billede x4all_dk Nybegynder
19. november 2004 - 12:26 #7
hmortensens -> smid lige et svar så du kan få point!
Avatar billede hmortensen Nybegynder
19. november 2004 - 13:15 #8
Ok
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