Avatar billede budwieser Nybegynder
27. april 2010 - 12:04 Der er 2 kommentarer og
1 løsning

$_GET mystik?

Jeg har denne kode hvor jeg starter på siden admin.php.
Her kan jeg vælge at tilføje,redigere eller slette mine data.
Hvis jeg skal tilføje bliver url'en billet.php?action=add

billet.php ved så via url'en at der skal tilføjes.
Hvis jeg gerne vil redigere en eksisterende data så hedder url'en
billet.php?action=edit&type=billet

Når du trykker rediger skal oplysningerne vises i de felter som man trykke information ind og når der skal tilføjes skal disse felter være tomme (intet problem.)

Jeg har endnu et php dokument ved navn commit.php
I commit.php skal den registrere om der skal tilføjes (mysql:INSERT) eller opdateres(mysql:UPDATE) ved hjælp af at kigge i url'en.

På min billet.php har jeg dette tilføjet i form'en:
<form action="commit.php?action=<?php echo $_GET['action']; ?>&type=billet" methode="post">
så den tager fra den nuværende url og putter i den nye url (commit.php) som ud fra det skal behandle dataen.

Mystikken opstår på billet.php?action=add
Her har jeg gjort så knappen ændre navn fra hvad der står i url'en
<input type="submit" name="submit" value="<?php ucfirst($action); ?>" />
Men denne knap har ingen value.
Jeg har så prøvet at smide det ud i en variable $action = $_GET['action'] uden held. Det underlige opstår da jeg sætter dette i starten af php
echo "action er lige med " . $action;
Og resultatet bliver: action er lige med add.
Hvis man åbner kildekoden og kigger så har den sørme også sat add ind i min form så url'en bliver commit.php?action=add&type=billet
men hvis jeg går ned til min <input type="submit" name="submit" value="<?php ucfirst($action); ?>" />
Så har den ingen værdi.

Men i skal da nok se nogle kildekoder hvis i skal kunne se jer ud af det:

admin.php
<?php
$db = mysql_connect('localhost', 'root') or die('unable to connect..');
mysql_select_db('my_db', $db) or die(mysql_error($db));
?>
<html>
<head>
<title>Billet Database</title>
<style type="text/css">
th { background-color: #999; }
.odd_row { background-color: #EEE; }
.even_row { background-color: "FFF; }
</style>
</head>
<body>
<table style="width:100%;">
<tr>
<th colspan="5">Billetter <a href="billet.php?action=add">[TILFØJ]</a></th>
</tr>
<?php
$query = "SELECT * FROM ticket_user";
$result = mysql_query($query, $db) or die(mysql_error($db));

$odd = true;
while ($row = mysql_fetch_assoc($result)) {
if ($odd == true) {
echo "<tr class='odd_row'>";
}
else {
echo "<tr class='even_row'>";
}
$odd = !$odd;
echo "<td style='width:10%;'>";
echo $row['order_nr'];
echo "</td>";
echo "<td style='width:75%;'>";
echo $row['navn'];
echo "</td><td>";
echo " <a href='billet.php?action=edit&id=" . $row['order_id'] . "'> [REDIGER]</a>";
echo " <a href='delete.php?type=billet&id=" . $row['order_id'] . "'> [SLET]</a>";
echo '</td></tr>';
}
?>
</table>

__________________

billet.php
<?php
$db = mysql_connect('localhost', 'root') or die('unable to connect..');
mysql_select_db('my_db', $db) or die(mysql_error($db));
$action = $_GET['action'];
if($action == 'edit') {
    $query = "SELECT order_nr, navn, billet_type, antal, afsendt FROM ticket_user WHERE order_id = " . $_GET['id'];
    $result = mysql_query($query, $db) or die(mysql_error());
    extract(mysql_fetch_assoc($result));
}
    else {
        $order_nr         = 0;
        $navn            = "";
        $billet_type    = "";
        $antal            = 0;
        $afsendt        = "";
    }
?>
<html>
<head>
<title><?php ucfirst($action); ?> Movie</title>
</head>
<body>
<?php echo "action er lige med " . $action; ?>
<form action="commit.php?action=<?php echo $action; ?>&type=billet" methode="post">
<table>
<tr>
<td width="97">Order Nummer</td>
<td width="149"><input type="text" name="order_nr" value="<?php echo $order_nr; ?>" /></td>
</tr><tr>
<td>Navn</td>
<td><input name="navn" type="text" value="<?php echo $navn; ?>" /></td>
</tr><tr>
<td>Billet Type</td>
<td><input name="billet_type" type="text" value="<?php echo $billet_type; ?>" /></td>
</tr><tr>
<td>antal</td>
<td><input name="antal" type="text" value="<?php echo $antal; ?>" /></td>
</tr><tr>
<td>Afsendt</td>
<td><input name="afsendt" type="text" value="<?php echo $afsendt; ?>" /></td>
</tr>
<td colspan="2" style="text-align: center;">
<?php
if ($action == "edit") {
    echo "<input type='hidden' value='" . $_GET['id'] . "' name='order_id' />";
}
?>
<label>
  <input type="submit" name="submit" value="<?php ucfirst($action); ?>" />
</label></td></table></form>
</body></html>

__________________
commit.php

<?php
$db = mysql_connect('localhost', 'root') or die('unable to connect..');
mysql_select_db('my_db', $db) or die(mysql_error($db));

?>

<html>
<head>
<title>Commit</title>
</head>
<body>
<?php
switch ($_GET["action"]) {
case "add":
switch ($_GET["type"]) {
case "billet":
    $query = "INSERT INTO
    ticket_user
        (order_nr,navn,billet_type,antal,afsendt)
            VALUES
                ('" . $_POST['order_nr'] . "',
                '" . $_POST['navn'] . "',
                '" . $_POST['billet_type'] . "',
                '" . $_POST['antal'] . "',
                '" . $_POST['afsendt'] . "')";   
   
    break;
}
break;
case "edit":
switch($_GET['type']) {
    case "billet":
    $query = "UPDATE ticket_user SET
    order_nr        ='" . $_POST['order_nr'] . "',
    navn            ='" . $_POST['navn'] . "',
    billet_type        = '" . $_POST['billet_type'] . "',
    antal            = '" . $_POST['antal'] . "',
    afsendt            ='" . $_POST['afsendt'] . "'
        WHERE
        order_id    ='" . $_POST['id'] . "'";
    break;
}
break;
}
if (isset($query)) {
$result = mysql_query($query) or die(mysql_error($db));
echo "<p>Færdig!</p>";
}
?>

</body>
</html>
Avatar billede budwieser Nybegynder
27. april 2010 - 12:19 #1
Lige en ekstra ting så bliver dataen sendt som var det get jeg havde brugt som methode i formen:
commit.php?order_nr=124&navn=sadsa&billet_type=dsad&antal=2&afsendt=20-10-1987&submit=

og læg mærke til submit er også blank.
Avatar billede budwieser Nybegynder
28. april 2010 - 13:23 #2
Nogen forslag?
Avatar billede budwieser Nybegynder
04. maj 2010 - 09:55 #3
nå nå
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
Kurser inden for grundlæggende programmering

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



IT-JOB

SporingsGruppen ApS

Frontend-udvikler

Sparekassen Danmark

RPA-udvikler til IT-afdelingen

Udviklings- og Forenklingsstyrelsen

Testmanager til Partsrepræsentation

RISMA Systems A/S

Senior PHP-udvikler