Avatar billede fc_kongen Nybegynder
13. august 2009 - 18:00 Der er 7 kommentarer og
1 løsning

PHP fejl i sletning af drop down menu

Hej

Er der nogen der kan se hvorfor værdien i dropdown menuen ikke kommer over når jeg førster at POST den. Prøver at echo værdien ud men der kommer intet ud

<?
// SESSION CHECK
session_start();
$uid = $_SESSION['uid'];
$rights = $_SESSION['rights'];
if (!$uid)
    {
        require('main.php');
        include(INC_DIR."login.php");
  }
else
{
  include("header.php");
  require_once("inc/init.php");

?>


<div id="faux">
    <div id="content_kontaktos">
        <div id="newsBoxHeader">
            <h2>Nedtag Nyheder</h2>
        </div>
        <div id="content_nedtagnyhed_left"> <!-- start content_operationer_left -->
<?
$update    = $_POST['update'];

if($update == 1)
{
    update();
}
?>

        <form action="<?$_SERVER['PHP_SELF'];?>"  method="POST" name="updform">
<?
        dbOpen();

        $query = mysql_query("SELECT subject FROM nyheder ORDER BY time DESC") or die (mysql_error());

        dbClose();

        if($query == null) { }

        else {
?>
            <select name="sidebox" class="SidebarResult">
<?
            while ($row = mysql_fetch_array($query)) {
?>
                <OPTION VALUE="<? echo $row['id']; ?>" > <? echo $row['subject']; ?></OPTION>

<?          }
?>
            </select>
<?
        }
?>
                <input type="hidden" name="update" value="1">

                <p align="center"><INPUT NAME="submit" TYPE=SUBMIT VALUE="Fjern nyhed"></p>
</form>


        </div> <!-- slut content_operationer_left -->

    </div> <!-- Content end -->

</div>

<?
    include('footer.php');
}
?>


<?

function update()
{
    $vaerdi = $_POST['sidebox'];
    echo $_POST['sidebox'];

    echo("message");

    dbOpen();
   
    $result = mysql_query("DELETE FROM nyheder WHERE id = $vaerdi");

    if($result) {
        echo "Nyheden er slettet";
    }
    else {
        echo "Fejl opstod";
    }
    dbClose();
}
?>
Avatar billede Slettet bruger
13. august 2009 - 18:39 #1
Først, gud hvor er din kode forvirrende når du hele tiden skifter ud af og ind i PHP. Nogle echo'er/prints kunne gøre det meget lettere at forstå.

--

Derefter, har du sikret dig at din MySQL server giver dig nogle id'er? Følgende kode, som er den samme som din, men uden database virker nemlig fint:

<div id="faux">
    <div id="content_kontaktos">
            <h2>Nedtag Nyheder</h2>
        <div id="newsBoxHeader">
        </div>
        <div id="content_nedtagnyhed_left"> <!-- start content_operationer_left -->
<?
$update    = $_POST['update'];

if($update == 1)
{
    update();
}
?>

        <form action="<?$_SERVER['PHP_SELF'];?>"  method="POST" name="updform">
            <select name="sidebox" class="SidebarResult">
                <OPTION VALUE="1" >1</OPTION>
                <OPTION VALUE="1" >1</OPTION>
            </select>
                <input type="hidden" name="update" value="1">

                <p align="center"><INPUT NAME="submit" TYPE=SUBMIT VALUE="Fjern nyhed"></p>
</form>


        </div> <!-- slut content_operationer_left -->

    </div> <!-- Content end -->

</div>


<?

function update()
{
    echo $_POST['sidebox'];
}
?>
Avatar billede erikjacobsen Ekspert
13. august 2009 - 18:41 #2
SELECT subject FROM nyheder  ... giver dig ingen id-felt.
Avatar billede fc_kongen Nybegynder
13. august 2009 - 20:43 #3
synes ikke jeg kan komme ud af at skulle skifte så mange gange mellem php og html kode desværre. Men tak for ideen med at skulle skrive det om således at jeg ikke skulle bruge db. deraf fandt jeg fejlen. fik ikke selected id'et ud af min sql sætning. Men nu virker det. Sender du ikke et svar kimsey0.

Hvordan ville du kode det for at skulle undgå at komme ind og ud af html og php koden?
Avatar billede fc_kongen Nybegynder
13. august 2009 - 20:44 #4
aaaaah erikjacosen så slet ikke du også havde svaret. Ved ikke om du også vil have nogle af pointne
Avatar billede erikjacobsen Ekspert
13. august 2009 - 20:52 #5
Nej tak.

En nem måde at lave lidt struktur på siden, er at start med en <?php ... ?> blok, hvor man laver alt det arbejde med databasen, der skal gøres, update, delete og så selects, hvor man henter de data der skal vises ind i variabler og arrays. Derefter laver man så HTML-en der vises ud fra det.
Avatar billede Slettet bruger
13. august 2009 - 22:02 #6
Erik har helt ret. Læg alt databasearbejdet i toppen. Her er et eksempel på hvor let det er at få det til at se lidt pænere ud. På to minutter er koden samlet i tre PHP blokke:

<?
// SESSION CHECK
session_start();
$uid = $_SESSION['uid'];
$rights = $_SESSION['rights'];
if (!$uid)
    {
        require('main.php');
        include(INC_DIR."login.php");
  }
else
{
  include("header.php");
  require_once("inc/init.php");

?>

<div id="faux">
    <div id="content_kontaktos">
        <div id="newsBoxHeader">
            <h2>Nedtag Nyheder</h2>
        </div>
        <div id="content_nedtagnyhed_left"> <!-- start content_operationer_left -->
   
<?
$update    = $_POST['update'];

if($update == 1)
{
    update();
}

echo "        <form action='$_SERVER['PHP_SELF']'  method='POST' name='updform'>";

        dbOpen();

        $query = mysql_query("SELECT subject FROM nyheder ORDER BY time DESC") or die (mysql_error());

        dbClose();

        if($query != null) {

echo "            <select name='sidebox' class='SidebarResult'>";

            while ($row = mysql_fetch_array($query)) {

echo "                <OPTION VALUE='$row['id']' >$row['subject']</OPTION>";
          }
echo "            </select>";

        }
?>
                <input type="hidden" name="update" value="1">

                <p align="center"><INPUT NAME="submit" TYPE=SUBMIT VALUE="Fjern nyhed"></p>
</form>


        </div> <!-- slut content_operationer_left -->

    </div> <!-- Content end -->

</div>

<?
    include('footer.php');
}

function update()
{
    $vaerdi = $_POST['sidebox'];
    echo $_POST['sidebox'];

    echo("message");

    dbOpen();
 
    $result = mysql_query("DELETE FROM nyheder WHERE id = $vaerdi");

    if($result) {
        echo "Nyheden er slettet";
    }
    else {
        echo "Fejl opstod";
    }
    dbClose();
}
?>
Avatar billede fc_kongen Nybegynder
14. august 2009 - 11:03 #7
jeg takker


men kimsey0 tror ikke du fik skrevet det som et svar kan ikke give dig pointne endnu
Avatar billede Slettet bruger
14. august 2009 - 15:42 #8
Nej, jeg har ikke skrevet det som et svar, da jeg jo ikke vidste om det ville løse dit problem.

Her kommer så et svar.
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