Avatar billede peder77 Nybegynder
28. oktober 2004 - 10:06 Der er 26 kommentarer og
2 løsninger

indhold i JumpMenu

Hej

Jeg har lavet denne side ud fra nogle scripts jeg har fundet her på eksperten.
www.synvision.dk/CMS/indTast.php
Jeg kunne godt tænke mig at man slap for at taste indeks ind for at hente og rette, men at jeg kunne vælge det fra punkter i en jumpMenu som hentes dynamisk fra databasen. Kan man det?
Vh
Peter

Jeg ligger lige scriptet:

------------------------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Administrationmodul - opdatering af side</title>
</head>
<body>
<h3>Administrationmodul - opdatering af side</h3>
<h4>Se side</h4>
<h3>Indtast indeks for at se det nuv&aelig;rende tekst. </h3>
<?php
if (isset($_POST['hent'])) {
    extract($_POST);
    mysql_connect("xxx","xxx","xxx");
    mysql_select_db("xxx");
    $hent = mysql_query("SELECT overskrift, indhold, dag FROM sider WHERE indeks = $indeks") or die(mysql_error());
    while ($data = mysql_fetch_array($hent)) {
  echo $data['overskrift']."<br><br>";
  echo $data['indhold']."<br><br>";
  echo $data['dag']."<br><hr>";
    }
} else {
?>

<form method="post" action="">
<input type="text" name="indeks" value="<?=$data["hent"]?>">
<input type="submit" name="hent" value="Hent">
</form>

<h2>Opdater side</h2>
<h3>Indtast i felter</h3>

<?php
}
if (isset($_POST['update'])) {
    extract($_POST);
        mysql_connect("xxx","xxx","xxx");
    mysql_select_db("xxx");
    $SQL = ("UPDATE sider SET overskrift = '$overskrift', indhold = '$indhold', dag = '$dag' WHERE indeks = $indeks");
    mysql_query($SQL) or die("Forkert Query: $SQL - ".mysql_error());
    echo "Siden er opdateret.<br /><br />";
    echo $overskrift."<br /><br />";
    echo $indhold."<br /><br />";
    echo $dag."<br /><hr />";
} else {
?>
<form method=post action="">
Indeks der skal opdateres: <input type="text" name="indeks"><br>
Overskrift: <input type="text" name="overskrift"><br>
Indhold: <textarea cols="25" rows="5" name="indhold"></textarea><br>
Dato for rettelse: <input type="text" name="dag"><br>
<input type="submit" name="update" value="Opdater">
</form>
<?php
}
?>
</body>
</html>

-----------------------------------
Avatar billede peder77 Nybegynder
28. oktober 2004 - 10:07 #1
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 10:12 #2
Mener du sådan her:

<form method="post" action="">
<select name="indeks">
    <option value="">Vælg et indeks</option>
    <?php
    mysql_connect("xxx","xxx","xxx");
    mysql_select_db("xxx");
    $select = mysql_query("SELECT indeks FROM sider ORDER BY indeks) or die(mysql_error());
    while ($row = mysql_fetch_array($select)) {
        echo "<option value=\"".row['indeks']."\">".$row['indeks']."</option>";
    }
    ?>
</select>
<input type="submit" name="hent" value="Hent">
</form>
Avatar billede peder77 Nybegynder
28. oktober 2004 - 10:17 #3
Jeg får en fejl på denne linie
  echo "<option value=\"".row['indeks']."\">".$row['indeks']."</option>";
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 10:18 #4
Manglede lige en $
echo "<option value=\"".$row['indeks']."\">".$row['indeks']."</option>";
Avatar billede peder77 Nybegynder
28. oktober 2004 - 10:20 #5
øv, stadig fejl i den linie
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 10:22 #6
Der er altså ingen fejl.
Har du et link til siden ?
Avatar billede peder77 Nybegynder
28. oktober 2004 - 10:23 #7
Jeg har ikke sat den ind i selve scriptet, bare taget din "snas" og lagt op.
www.synvision.dk/cms/drop.php
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 10:24 #8
Her den er gal:
$select = mysql_query("SELECT indeks FROM sider ORDER BY indeks") or die(mysql_error());

Manglede en "
Avatar billede peder77 Nybegynder
28. oktober 2004 - 10:27 #9
Det hjalp, super.
Så må jeg se om jeg kan finde ud af at placere det rigtigt i scriptet.

Mange tak for hjælpen
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 10:35 #10
Var det bare det ?
Avatar billede peder77 Nybegynder
28. oktober 2004 - 10:35 #11
Den øverste virker fint.
Men jeg må sige den nederste driller.
Hvordan skal jeg placere scriptet for at få den nederste indeks vælger til at virke. uden knappen.
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 10:36 #12
Vil du ha, et når man har valgt et indeks, så udfylder den felterne der hører til indekset, så man kan rette i dem ?
Avatar billede peder77 Nybegynder
28. oktober 2004 - 10:40 #13
Det ville da være super, hvis det kunne laves sådan.
Avatar billede peder77 Nybegynder
28. oktober 2004 - 10:52 #14
Det giver jeg gerne flere points for...
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 11:05 #15
Kunne være noget i den her retning (der tages forbehold for evt. trykfejl):

<?php
function connect() {
    mysql_connect("server", "username", "password");
    mysql_select_db("database");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Administrationmodul - opdatering af side</title>
</head>
<body>
<h3>Administrationmodul - opdatering af side</h3>
<h3>Vælg indeks i listen.</h3>
<?php
if (!isset($_GET['mode'])) {
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>?mode=show" method="post">
    <select name="indeks">
    <option value"">Vælg indeks</option>
    <?php
    connect();
    $sql = mysql_query("SELECT indeks FROM sider ORDER BY indeks");
    while ($row = mysql_fetch_array($sql)) {
        echo "<option value=\"".$row['indeks']."\">".$row['indeks']."</option>";
    }
    ?>
    <input type="submit" value="Vis indeks">
</form>
<?php
} elseif ($_GET['mode'] == 'show') {
?>
<h2>Opdater side</h2>
<?php
connect();
$sql = mysql_query("SELECT overskrift, indhold, dag FROM sider WHERE indeks = ".$_POST['indeks']);
while ($row = mysql_fetch_array($sql)) {
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>?mode=update" method="post">
    Overskrift:
    <input type="text" name="overskrift" value="<?php echo $row['overskrift']; ?>"><br>
    Indhold:
    <textarea cols="25" rows="5" name="indhold"><?php echo $row['indhold']; ?></textarea><br>
    Dato for rettelse:
    <input type="text" name="dag" value="<?php echo $row['dato']; ?>"><br>
    <input type="hidden" name="indeks" value="<?php echo $_POST['indeks']; ?>">
    <input type="submit" name="update" value="Opdater">
</form>
<?php
}
    if (isset($_GET['fejl']) AND $_GET['fejl'] == 1)
        echo "Alle felter skal udfyldes!";
} elseif (isset($_GET['update'],$_POST['update'])) {
    if (empty($_POST['overskrift']) OR empty($_POST['indhold']) OR empty($_POST['dag'])) {
        header("location: ".$_SERVER['PHP_SELF']."?mode=show&fejl=1");
        exit;
    }
    $sql = ("UPDATE sider SET overskrift = '".$_POST['overskrift']."', indhold = '".$_POST['indhold']."', dag = '".$_POST['dag']."' WHERE indeks = ".$_POST['indeks']);
    mysql_query($sql) or die("Forkert Query: $SQL - ".mysql_error());

}
?>
</body>
</html>
Avatar billede peder77 Nybegynder
28. oktober 2004 - 11:11 #16
Lækkert..

http://www.synvision.dk/cms/ny.php
Det ser ud til at den ikke opdatere det indtastede og man vender tilbage til en siden hvor man ikke har valget fra jumpMenuen
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 11:16 #17
Mig der havde en lille fejl. Bare skift den nederste stump her:

<?php
}
    if (isset($_GET['fejl']) AND $_GET['fejl'] == 1)
        echo "Alle felter skal udfyldes!";
} elseif ($_GET['mode'] == 'update' AND isset($_POST['update'])) {
    if (empty($_POST['overskrift']) OR empty($_POST['indhold']) OR empty($_POST['dag'])) {
        header("location: ".$_SERVER['PHP_SELF']."?mode=show&fejl=1");
        exit;
    }
    $sql = ("UPDATE sider SET overskrift = '".$_POST['overskrift']."', indhold = '".$_POST['indhold']."', dag = '".$_POST['dag']."' WHERE indeks = ".$_POST['indeks']);
    mysql_query($sql) or die("Forkert Query: $sql - ".mysql_error());

}
?>
</body>
</html>
Avatar billede peder77 Nybegynder
28. oktober 2004 - 11:23 #18
Jeg får nogle fejl når jeg rettet i teksten.
Prøv selv
http://www.synvision.dk/cms/ny.php
De variere
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 11:26 #19
Jeg havde glemt at åbne forbindelsen:
<?php
}
    if (isset($_GET['fejl']) AND $_GET['fejl'] == 1)
        echo "Alle felter skal udfyldes!";
} elseif ($_GET['mode'] == 'update' AND isset($_POST['update'])) {
    if (empty($_POST['overskrift']) OR empty($_POST['indhold']) OR empty($_POST['dag'])) {
        @header("location: ".$_SERVER['PHP_SELF']."?mode=show&fejl=1");
        exit;
    }
    connection();
$sql = ("UPDATE sider SET overskrift = '".$_POST['overskrift']."', indhold = '".$_POST['indhold']."', dag = '".$_POST['dag']."' WHERE indeks = ".$_POST['indeks']);
    mysql_query($sql) or die("Forkert Query: $sql - ".mysql_error());

}
?>
</body>
</html>
Avatar billede peder77 Nybegynder
28. oktober 2004 - 11:30 #20
Den gemmer stadig ikke, og jeg havner på en side hvor man ikke kan vælge indeks.
Avatar billede peder77 Nybegynder
28. oktober 2004 - 11:31 #21
Og jeg får fejl engang imellem
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 11:35 #22
Har lige prøvet at kigge det igennem, og tror jeg har fået alle fejlene med nu:

<?php
function connect() {
    mysql_connect("server", "username", "password");
    mysql_select_db("database");
}

$top = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Administrationmodul - opdatering af side</title>
</head>
<body>
<h3>Administrationmodul - opdatering af side</h3>';

$bottom = '</body>
</html>';
?>
<?php
if (!isset($_GET['mode'])) {
echo $top;
?>
<h3>Vælg indeks i listen.</h3>
<form action="<?php echo $_SERVER['PHP_SELF'];?>?mode=show" method="post">
    <select name="indeks">
    <option value"">Vælg indeks</option>
    <?php
    connect();
    $sql = mysql_query("SELECT indeks FROM sider ORDER BY indeks");
    while ($row = mysql_fetch_array($sql)) {
        echo "<option value=\"".$row['indeks']."\">".$row['indeks']."</option>";
    }
    ?>
    <input type="submit" value="Vis indeks">
</form>
<?php
echo $bottom;
} elseif ($_GET['mode'] == 'show') {
echo $top;
?>
<h2>Opdater side</h2>
<?php
connect();
$sql = mysql_query("SELECT overskrift, indhold, dag FROM sider WHERE indeks = ".$_POST['indeks']);
while ($row = mysql_fetch_array($sql)) {
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>?mode=update" method="post">
    Overskrift:
    <input type="text" name="overskrift" value="<?php echo $row['overskrift']; ?>"><br>
    Indhold:
    <textarea cols="25" rows="5" name="indhold"><?php echo $row['indhold']; ?></textarea><br>
    Dato for rettelse:
    <input type="text" name="dag" value="<?php echo $row['dato']; ?>"><br>
    <input type="hidden" name="indeks" value="<?php echo $_POST['indeks']; ?>">
    <input type="submit" name="update" value="Opdater">
</form>
<?php
}
    if (isset($_GET['fejl']) AND $_GET['fejl'] == 1)
        echo "Alle felter skal udfyldes!";
echo $bottom;
} elseif ($_GET['mode']== 'update' AND isset($_POST['update'])) {
    if (empty($_POST['overskrift']) OR empty($_POST['indhold']) OR empty($_POST['dag'])) {
        header("location: ".$_SERVER['PHP_SELF']."?mode=show&fejl=1");
        exit;
    }
    connect();
    $sql = ("UPDATE sider SET overskrift = '".$_POST['overskrift']."', indhold = '".$_POST['indhold']."', dag = '".$_POST['dag']."' WHERE indeks = ".$_POST['indeks']);
    mysql_query($sql) or die("Forkert Query: $SQL - ".mysql_error());

}
?>
Avatar billede peder77 Nybegynder
28. oktober 2004 - 11:47 #23
Det virker.... lækkert.
Kan man få den til at gå tilbage til forsiden når man har trykket opdater?
Den havner på en blank side nu..
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 11:49 #24
Ja, her i bunden:

mysql_query($sql) or die("Forkert Query: $SQL - ".mysql_error());
header("location: forside.php");
exit;
}
?>
Avatar billede peder77 Nybegynder
28. oktober 2004 - 11:53 #25
den åbener en ny side med
http://www.synvision.dk/cms/ny.php?mode=update
men den virker ikke.
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 11:55 #26
Du skal lige rette forside.php til din side den skal gå til
Avatar billede peder77 Nybegynder
28. oktober 2004 - 11:58 #27
Så funker det sku.
Mange mange tak for din stor hjælp.
Hvor mange points vil du have?
Avatar billede hmortensen Nybegynder
28. oktober 2004 - 11:58 #28
Bare dem du har fastsat. Det er fint
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