Kmom06, delete/update/create-flödet i nytt fönster

  • Författare
  • Meddelande

BarcaT

html-kodare

  • Inlägg: 16
  • Blev medlem: 31 aug 2017, 23:38

Kmom06, delete/update/create-flödet i nytt fönster

Inlägg23 okt 2017, 14:38

Jag har försökt få hjälp på annat håll men utan resultat. Nu måste jag ha experthjälp.

Jag har skrivit följande:
delete.php:
Kod: Markera allt
<?php

$rowid = isset($_GET['tickerkod'])
    ? $_GET['tickerkod']
    : null;
if ($rowid) {
    echo <<<EOD

<form method="post" action="delete-process.php">
    <fieldset>
        <legend>Delete aktie</legend>
        <p><label>tickerkod<br><input type="text" name="tickerkod" value="$rowid" readonly></label></p>
        <p><input type="submit" name="delete" value="Delete"></p>
    </fieldset>
</form>
EOD;
} else {
    echo "<p><strong>Välj en aktie att radera.</strong></p>";
}
// Create a DSN for the database using its filename
$fileName = __DIR__ . "/db/aktier.sqlite";
$dsn = "sqlite:$fileName";
// Open the database file and catch the exception it it fails.
try {
    $db = new PDO($dsn);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Failed to connect to the database using DSN:<br>$dsn<br>";
    throw $e;
}
// Check whats in the database
$sql = "SELECT * FROM aktier";
$stmt = $db->prepare($sql);
echo "<p>Execute the SQL-statement:<br><code>$sql</code><p>";
$stmt->execute();
// Get the results as an array with column names as array keys
$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo "<p>The result contains " . count($res) . " rows.</p>";
// Loop through the array and gather the data into table rows
$rows = null;
foreach ($res as $row) {
    $rowid = htmlentities($row['tickerkod']);
    $rows .= "<tr>";
    $rows .= "<td><a href='../me6/content/delete.php?tickerkod=$rowid'>$rowid</a></td>";
    $rows .= "<td>" . htmlentities($row['bolagsnamn']) . "</td>";
    $rows .= "<td>" . htmlentities($row['kurs']) . "</td>";
    $rows .= "<td>" . htmlentities($row['antalaktier']) . "</td>";
    $rows .= "</tr>\n";
}
// Print out the result as a HTML table using PHP heredoc
echo <<<EOD
<table>
<tr>
    <th>tickerkod</th>
    <th>bolagsnamn</th>
    <th>kurs</th>
    <th>antalaktier</th>
</tr>
$rows
</table>
EOD;

delete-process.php:
Kod: Markera allt
<?php
// Check if form posted and get incoming
if (isset($_POST['delete']))
include("incl/admin.php");

    // Store posted form in parameter array
    $rowid  = $_POST['tickerkod'];

    $params = [$rowid];
    // Create a DSN for the database using its filename
    $fileName = __DIR__ . "/db/aktier.sqlite";
    $dsn = "sqlite:$fileName";
    // Open the database file and catch the exception it it fails.
    try {
        $db = new PDO($dsn);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
        echo "Failed to connect to the database using DSN:<br>$dsn<br>";
        throw $e;
    }
    // Prepare SQL statement to DELETE a row in the table
    $sql = <<<EOD
DELETE FROM aktier
    WHERE
        tickerkod = ?
EOD;
    $stmt = $db->prepare($sql);
    // Execute the SQL to INSERT within a try-catch to catch any errors.
    try {
        $stmt->execute($params);
    } catch (PDOException $e) {
        echo "<p>Failed to delete the row, dumping details for debug.</p>";
        echo "<p>Incoming \$_POST:<pre>" . print_r($_POST, true) . "</pre>";
        echo "<p>The error code: " . $stmt->errorCode();
        echo "<p>The error message:<pre>" . print_r($stmt->errorInfo(), true) . "</pre>";
        throw $e;
    }
    // Print out the successful results
    echo "<p>Deleted the row:<br></p><pre>" . print_r($params, true) . "</pre>";
    echo "<p><a href='../content/delete.php'>Delete another row</a>.</p>";
    exit();
}


Problemet:

När jag klickar på en tickerkod för att uppdatera eller radera, kastas jag vidare till en ny sida för fortsatta flödet och ligger inte kvar i Me-sidan. Jag vill integrera flödet med Me-sidan. Jag har dock inte kunskapen eller förstår mig på var i min kod jag gör fel. Någon som kan hjälpa?

Ps. Har blivit varsam att min kod inte är DRY, men det är en annan visa som jag kan hantera på egen hand.

aiil17

html-kodare

  • Inlägg: 19
  • Blev medlem: 04 sep 2017, 10:24

Re: Kmom06, delete/update/create-flödet i nytt fönster

Inlägg23 okt 2017, 15:52

Kastas du till en helt ny sida eller till en default sida som du har lagt in själv från din admin.php? Det låter som samma problem som jag har, väntar också på hjälp.
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10988
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Kmom06, delete/update/create-flödet i nytt fönster

Inlägg23 okt 2017, 18:00

Publicera på studentservern och länka samt berätta hur man gör för att återskapa ditt bekymmer.
...
..:
.... /mos

BarcaT

html-kodare

  • Inlägg: 16
  • Blev medlem: 31 aug 2017, 23:38

Re: Kmom06, delete/update/create-flödet i nytt fönster

Inlägg23 okt 2017, 23:35

aiil17 skrev:Kastas du till en helt ny sida eller till en default sida som du har lagt in själv från din admin.php? Det låter som samma problem som jag har, väntar också på hjälp.


Vet inte riktigt betydelsen av default-sida men se länken nedan så ser du hur flödet för mig ser ut.

mos skrev:Publicera på studentservern och länka samt berätta hur man gör för att återskapa ditt bekymmer.


Jag fick backning på den delen vid inlämningen. Det går därför att återskapa detta på redan inlämnad:

http://www.student.bth.se/~manp17/dbweb ... /admin.php

aiil17

html-kodare

  • Inlägg: 19
  • Blev medlem: 04 sep 2017, 10:24

Re: Kmom06, delete/update/create-flödet i nytt fönster

Inlägg24 okt 2017, 11:19

Tror du har problem med den här raden:
$rows .= "<td><a href='../me6/content/delete.php?tickerkod=$rowid'>$rowid</a></td>";

Det är den raden som bidrar till att en ny sida. Jag fick svar på min fråga så det kanske hjälper dig att skicka på den se tråd: viewtopic.php?f=4&t=6966.
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10988
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Kmom06, delete/update/create-flödet i nytt fönster

Inlägg24 okt 2017, 16:23

BarcaT skrev:När jag klickar på en tickerkod för att uppdatera eller radera, kastas jag vidare till en ny sida för fortsatta flödet och ligger inte kvar i Me-sidan. Jag vill integrera flödet med Me-sidan.


Din riktiga länk skall se ut så här:
http://www.student.bth.se/~manp17/dbweb ... erkod=SWMA

När man klickar på länken SWMA hamnar man på en annan sida, du behöver justera den länken så den blir enligt ovan. Som aiil17 säger så har du samma trubbel och liknande lösning som i tråden aiil17 länkar till.
...
..:
.... /mos

BarcaT

html-kodare

  • Inlägg: 16
  • Blev medlem: 31 aug 2017, 23:38

Re: Kmom06, delete/update/create-flödet i nytt fönster

Inlägg26 okt 2017, 09:20

Stort tack till er båda. :)

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 16 gäster