Avatar billede smeier Nybegynder
27. september 2004 - 16:45 Der er 22 kommentarer og
1 løsning

Opdaterer min form via <select>

Først har jeg forsøgt at søge her på eksperten men fandt ingen gamle  spm jeg kunne bruge.

Jeg har en form med en <select>box og og et <textarea>
Hver gang man skifter option i select boksen skal textareaen skifte til den tilhørende text. HVorefter denne kan rettes til og opdateres i db'en. Det sidste skal jeg nok klare. problemet er at den skal opdatere i textareaet når man skifter option.

Noget der har et forslag til hvordan jeg gør? Er ingen haj til javascript.
Avatar billede roenving Novice
27. september 2004 - 16:47 #1
Hvis du vil fastholde evt. tidligere ændringer bliver det tricky, men absolut muligt ...

Hvis man skal starte forfra ved et valg er det simpelt nok:

<select ... onchange="this.form.TEXTAREANAVN.value=this.value;">
Avatar billede smeier Nybegynder
27. september 2004 - 16:50 #2
Hvis du mener tidligere ændringer fortaget i denne indlæsning/åbning af siden siden til min browser? eller mener du ændringer fortaget på et langt tidligere tidspunkt? hvis du mener det første er det ligegyldigt.

Tester lige det du har skrevet.
Avatar billede smeier Nybegynder
27. september 2004 - 16:51 #3
under value=this.value; hva skal jeg skrive her?
Avatar billede roenving Novice
27. september 2004 - 16:52 #4
Det, der står !-)
Avatar billede roenving Novice
27. september 2004 - 16:53 #5
Det eneste du skal rette er det name, som du har givet dit textarea !o]
Avatar billede smeier Nybegynder
27. september 2004 - 17:07 #6
har desværre ikke mulighed for at tjecke lige nu. Men server har valgt et glimrende tidspunkt at gå i sort på. Vender tilbage lidt senere i eftermiddag/aften.

Et sidste spørgsmål hvad skal jeg skrive under min <textarea> der er jo ingen value men står <textarea>$data[1]</textarea> ændrer den virkelig selv det?
Avatar billede roenving Novice
27. september 2004 - 17:32 #7
Ja !-)

Se f.eks. http://roenving.users.whitehat.dk/WD3Input.html, hvor jeg også bruger .value ...
Avatar billede olebole Juniormester
27. september 2004 - 23:05 #8
<ole>

Du kan bruge XMLhttp til at hente data med:

<script type="text/JavaScript">
function loadTxt(f, val) {
    var sURL, resNode, oXmlHttp=null;
    oXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    sURL = "http://www.domain.dk/side.php?id=" + val;
    sURL += "&amp;u=" + new Date().getTime(); // Vi-går-udenom-cachen-hack  :)

    oXmlHttp.open("GET", sURL, false);
    oXmlHttp.send();
   
    f.myTxt.value = oXmlHttp.responseXML.documentElement.firstChild.text;
}
</script>

<form>
    <select name="sel" onchange="loadTxt(this.form, this.value)">
        <option value="v_1">Value 1</option>
        <option value="v_2">Value 2</option>
        <option value="v_3">Value 3</option>
        <option value="v_4">Value 4</option>
    </select>
    <textarea name="myTxt"></textarea>
</form>

Så kunne dit PHP-dokument se sådan ud:

<?php

Header ("Content-type: text/xml");
print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";

if ( isset($_GET["id"]) ) {
    switch ( $_GET["id"] ) {
        case "v_1":
            $xml = "<result>Du valgte nummer et</result>";
        break;
       
        case "v_2":
            $xml = "<result>Du valgte nummer to</result>";
        break;
       
        case "v_3":
            $xml = "<result>Du valgte nummer tre</result>";
        break;
       
        case "v_4":
            $xml = "<result>Du valgte nummer fire</result>";
        break;
       
        default:
            $xml = "<result>Der opstod en fejl</result>";
    }
} else {
    $xml = "<result>Der opstod en fejl</result>";
}
print "<dataset>".$xml."</dataset>";

?>


Dette virker i IE. Mozilla bruger 'XMLHttpRequest()' i stedet.
/mvh
</bole>
Avatar billede roenving Novice
28. september 2004 - 10:07 #9
>>ole

Hente data ?-)

Hvorfor det, når manden har teksten i select-value ...
Avatar billede smeier Nybegynder
28. september 2004 - 10:46 #10
>>roenving
Har afprøvet det som du kan se her. Men den henter ikke den tilhørende tekst til hver option, den henter bare den tekst der står i option. Her er siden.

tekster.php
<?php
//Forbindelse til Databasen
include("db_password.inc");
mysql_connect($hostname, $user, $password);
mysql_select_db("$db");
$thispage = $_SERVER["PHP_SELF"];   

$ID = "1";

if (isset($_POST['Submit']) && $_POST['Submit'] == 'Submit') {

  // Format the data
$tekst = $_POST['tekst'];
$tekst = nl2br('$tekst');

  // Update values
$query = "UPDATE tekster
            SET tekst = '$tekst'
            WHERE ID = $ID";
  $result = mysql_query($query) or die(mysql_error());
  if (mysql_affected_rows() == 1) {
  header("Location: index.php");
  } else {
  }
}
?>

<h1><strong>Tekster fra Spillesteder.dk</strong></h1><br>
<?
$query = "SELECT * FROM tekster where ID=$ID";
  $result = mysql_query($query) or die(mysql_error());
while ($data = mysql_fetch_row($result)) {

}

$form_str = <<< EOFORMSTR
<form action="$thispage" method="get">
<select name="navn" onchange="this.form.tekst.value=this.value;">
<option value="kategori">kategori</option>
<option>tekst2</option>
</select>
<br>

<textarea name="tekst" cols="75" rows="15">$data[2]</textarea>

<input type="Submit" value="Submit" name="Submit">
</form><br>

EOFORMSTR;
    echo $form_str;
?>
Avatar billede smeier Nybegynder
28. september 2004 - 10:57 #11
sidder lige og læser min side igennem. Opdager at jeg har fucked min while løkke lidt op osv. HVis du kan se hvordan det kan løses så det virker ville jeg blive meget glad.
Avatar billede roenving Novice
28. september 2004 - 11:00 #12
<h1><strong>Tekster fra Spillesteder.dk</strong></h1><br>
<form action="$thispage" method="get">
<select name="navn" onchange="this.form.tekst.value=this.value;">
<option value="kategori">kategori</option>
<?
$query = "SELECT * FROM tekster where ID=$ID";
  $result = mysql_query($query) or die(mysql_error());
while ($data = mysql_fetch_row($result)) {
  print "<option value='$data[2]'>tekst2</option>
}
?>
</select>
<br>

<textarea name="tekst" cols="75" rows="15">$data[2]</textarea>

<input type="Submit" value="Submit" name="Submit">
</form><br>
Avatar billede smeier Nybegynder
28. september 2004 - 11:26 #13
Den passede ikke helt den du havde lavet. Den havde enkelte fejl. Har forsøgt at rette dem. Kan du se hvorfor den ikke viser det rigtigt her?
Til oplysning er $data[0] = ID. $data[1] = tekstnavnet. og $data[2] = teksten.

<?php
//Forbindelse til Databasen
include("db_password.inc");
mysql_connect($hostname, $user, $password);
mysql_select_db("$db");
$thispage = $_SERVER["PHP_SELF"];   
$ID = "1";
?>

<h1><strong>Tekster fra Spillesteder.dk</strong></h1><br>
<form action="$thispage" method="get">
<select name="navn" onchange="this.form.tekst.value=this.value;">
<?
$query = "SELECT * FROM tekster";
  $result = mysql_query($query) or die(mysql_error());
while ($data = mysql_fetch_row($result)) {
  echo "<option value='$data[2]'>$data[1]</option>
"; }
?>
</select>
<br>

<textarea name=\"tekst\" cols=\"75\" rows=\"15\">
<? echo $data[2] ?></textarea>

<input type="Submit" value="Submit" name="Submit">
</form><br>
Avatar billede smeier Nybegynder
28. september 2004 - 11:28 #14
har ændret denne <textarea name=\"tekst\" cols=\"75\" rows=\"15\">
til <textarea name="tekst" cols="75" rows="15">
Nu kommer starten af teksten men ikke resten. JEg forstår det ikke.
se
http://smeier.dk/spillestederdk/admin/tekster3.php
Avatar billede roenving Novice
28. september 2004 - 12:18 #15
Der er jo heller ikke gnyffer med i udskriften, hvornår forsvinder de ?-)
Avatar billede roenving Novice
28. september 2004 - 12:21 #16
-- husk også, at hvis du har linjeskift i, skal vi måske lave noget mere, for en javascript-variabel må ikke indeholde linjeskift ...
Avatar billede smeier Nybegynder
28. september 2004 - 12:58 #17
Hmm. Der er linjeskift.
Avatar billede smeier Nybegynder
28. september 2004 - 13:07 #18
gnyffer?
Avatar billede roenving Novice
28. september 2004 - 13:18 #19
'erne er gnyfferne ...

-- og test det først, for som sagt er det måske, det vil lave fejl med linjeskift !-)
Avatar billede olebole Juniormester
28. september 2004 - 17:05 #20
roenving >> som svar på (28/09-2004 10:07:50): Jamen han har da ikke på noget tidspunkt sagt, teksterne ligger i select'en. Dette er det nærmeste spørgeren oplyser:
"Hver gang man skifter option i select boksen skal textareaen skifte til den tilhørende text"
Hvor 'den tilhørende tekst' så befinder sig, må være et fortolkningsspørgsmål. Jeg formodede, den befandt sig i en DB på serveren  :)

smeier >> Du skal bare skrive ordentlig HTML: Brug _altid_ gåseøjne omkring attributter - det gælder også value-attributten i en option  ;o)
Avatar billede smeier Nybegynder
01. oktober 2004 - 01:05 #21
Jeg vælger en anden løsning, men smid et svar, så får i nogle points som tak for forsøget.
Avatar billede roenving Novice
01. oktober 2004 - 01:09 #22
Oki '-)
Avatar billede roenving Novice
05. oktober 2004 - 10:19 #23
-- og tak for point ;~}
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