Avatar billede thomic Nybegynder
24. april 2007 - 11:24 Der er 17 kommentarer og
1 løsning

2 inputs med samme navn og værdi?

Hej.

Jeg kunne godt tænke mig at have 2 inputs, som begge sender data til den samme mysql tabel.

Det ene input er en drop-down boks, som viser nogle allerede fastsatte værdier. Derudover kunne jeg godt tænke mig, at jeg ved siden af havde en almindelig text-boks, hvor man kan skrive en værdi, der ikke er i drop-downmenuen.

Er dette muligt på en eller anden måde? Evt. ved at man skal checke en check-boks før text-boksen bliver aktiv og gør drop-down-menuen deaktiv?

Ser frem til jeres svar.
Avatar billede jakobdo Ekspert
24. april 2007 - 11:30 #1
Du kan jo gøre det sådan her:
<select name="dropdown"><option value="option1">Option 1</option><option value="option2">Option 2</option></select>
<input type="text" name="newDropdown">

Og så i selve koden som indsætter i databasen, laver du:

$option = mysql_real_escape_string($_POST['dropdown']);
if(isset($_POST['newDropdown']))
{
    $option = mysql_real_escape_string($_POST['newDropdown']);
}

mysql_query("UPDATE tabel SET option = '$option'");
Avatar billede thomic Nybegynder
24. april 2007 - 13:01 #2
Jeg kan ikke rigtig få det til at virke.
Kan man evt. bruge en disable='$check' i tekstboxen - hvor den så tjekker om en checkbox er markeret via noget onchange eller sådan noget og hvis den er markeret, så er $check= yes og hvis ikke så er det nej?

Jeg er ude, hvor jeg ikke rigtig kan bunde, så kan godt være jeg er galt på den :)
Avatar billede thomic Nybegynder
24. april 2007 - 13:02 #3
Jeg prøvede noget java script:

_________________________________________
<script language="javascript">
function checkState()
{
    document.testform.tdc1.disabled = !document.testform.tdc1.disabled;
}
</script>

<?php

echo '

    <form name="testform">
<select name="poll_option" class="textbox"><option>dsds</option></select>

          <input name="cb1" value="test" type="checkbox" onClick="checkState()">
        <input name="tdc1" value="test2" type="textfield" disabled="true">
    </form>
';

?>
_________________________________________

Men det virker ikke, når jeg  sætter navnet til tdc[$i] som det gerne skal være.
Avatar billede jakobdo Ekspert
24. april 2007 - 13:09 #4
Men er det ikke men som input og derefter noget der skal gemmes i en database?
Avatar billede thomic Nybegynder
24. april 2007 - 14:54 #5
Jo - kan du evt. prøve at vise et konkret eksempel med <?php osv til, hvordan man kan gøre dte.

Hvis vi siger tabellen hedder names og den skal indsætte i tdc[$i]
Avatar billede jakobdo Ekspert
24. april 2007 - 15:04 #6
Noget i denne stil:

<?php
if(isset($_POST['save']))
{
    //Forbind til din database...
   
    $option = mysql_real_escape_string($_POST['dropdown']);
    if(isset($_POST['newDropdown']))
    {
    $option = mysql_real_escape_string($_POST['newDropdown']);
    }
    mysql_query("UPDATE names SET data = '$option' WHERE id = $id LIMIT 1");
}
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<select name="dropdown"><option value="option1">Option 1</option><option value="option2">Option 2</option></select>
Ny Option: <input type="text" name="newDropdown" /><br />
<input type="submit" name="save" value="Gem Option" /><br />
</form>

Jeg forstår dog ikke hvad du mener med:
...den skal indsætte i tdc[$i] <---???
Avatar billede thomic Nybegynder
24. april 2007 - 15:51 #7
Det er fordi at jeg har en række files i min table: tdc_id, tdc_1, tdc_2, tdc_3, tdc_4 osv.
Der bliver sendt info til disse alt efter hvor mange text-bokse jeg ahr trykket frem - derfor bruger jeg $i til at tælle op. Derfor er tdc_[$i]navnet på boksene, da det rigtige navn afhænger af hvilken boks det er.

Håber det kunne forklare det lidt bedre.

ps. tjekker lige koden du har sendt lidt senere.
Avatar billede jakobdo Ekspert
24. april 2007 - 16:00 #8
Jeg forstod ikke din sidste forklaring, måske jeg er ved at være lidt træt! :o)
Men jeg håber måske koden og så lidt mere input fra dig, kan guide mig på rette vej igen.
Avatar billede thomic Nybegynder
24. april 2007 - 17:01 #9
Jeg kan desværre ikke rigtig få din kode til at virke i mit sammenhæng - der findes ikke en anden måde, hvorpå man kan sende foskellig info til samme field alt after hvilken input-boks, man vælger?
Avatar billede thomic Nybegynder
24. april 2007 - 17:59 #10
Bare for at slå fast, hvad det helt præcist er, jeg ønsker, hvis nogen skulle være i tvivl.
Det jeg ønsker er det samme princip, som der er her på Eksperten, når man opretter et nyt spg.

Så kan man enten vælge nogle forudbestemte point eller man kan skrive sine egne. Her vil jeg så bare gerne have en dropdown boks istedet for de ratio der bruges her. Så man enten vælger et navn fra listen eller selv skriver et.
Avatar billede jakobdo Ekspert
24. april 2007 - 21:40 #11
Det er jo netop det mit system det gør?
Avatar billede jakobdo Ekspert
24. april 2007 - 21:44 #12
Avatar billede thomic Nybegynder
24. april 2007 - 22:40 #13
Ja Jakob, det er jeg godt klar over, jeg kan bare ikke få det til at virke med min kode :) Men ja, dit eksempel viser præcis, hvordan, jeg gerne vil have det.
Du kan godt få point allievel, hvis du ønsker, da du jo kommer med et rigtigt svar.
Avatar billede thomic Nybegynder
24. april 2007 - 22:56 #14
Jeg kan forsøge, at forklare dig min mySQL tabel-opbygning igen, hvis du stadig har mod på det.

I min tabel ved navn "navne" - i denne er der flg. fields:
tdc_id, tdc_title, tdc_1, tdc_2, tdc_3, tdc_4, tdc_5, tdc_6, tdc_7, tdc_8, tdc_9

De 9 sidste er sådan set det samme field, da det er samme info, der bliver sat ind - i min admin-side, hvor jeg indsætter data bliver de også opfattet som samme, hvor jeg ved at trykke på en button kan få en ny dropdownboks frem, - boksens navn afhænger så af, hvilket nr. den er i forhold til de eksisterende bokse - derfor bruger jeg $i, som altid tjekker om den er mindre end antal bokse.
Derfor bliver boksenes navne tdc_[$i] - hvor $i så enten er 1, 2, 3 osv. alt afhængig af kassen - har jeg trykket 3 bokse frem, så hedder den sidste boks tdc_[3].

Netop derfor skal den nye tekstboks, som jeg vil have lavet, også sende til tdc_[$i]

Håber det satte det bedre på plads :)
Avatar billede thomic Nybegynder
24. april 2007 - 23:54 #15
Jeg fandt en anden løsning, jakob. Men mange tak for din hjælp, uden den havde jeg givet op for længst.

bare smid svar for point ;)
Avatar billede jakobdo Ekspert
25. april 2007 - 07:50 #16
Du får et svar!
Må vi se din løsning?
Avatar billede thomic Nybegynder
25. april 2007 - 10:41 #17
Jeg er ikke lige ved min egen computer lige nu. Men jeg brugte en checkbox, hvor den så henviste til id'et på min textbox og om boksen enten var disabled eller ej - dermed inteferede den ikke med min dropdown - derudover satte jeg $i bag id'et, så det var forskelligt alt efter, hvor mange bokse, der kom frem.
Når textboxen, så er slået til, så er det den tæller, da den er den sidst-gældende input med det navn, og når den er slået fra, så er det kun dropdown-boksen, der har  det navn.

Kan ikke tro, at det var så simpelt egentlig - brugte en hel dag på det, og du ville garanteret ahve kunnet fortælle mig det med det samme, havde jeg forkalret min situation bedre fra starten af.
Avatar billede jakobdo Ekspert
25. april 2007 - 11:51 #18
Haha, jeg siger ihf tak for point og godt du fik løst problemet. :o)
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