HTML und PHP trennen Problem

  • Guten Tag,


    ich habe ein kleines Problem, un zwar wenn man auf ein Button klickt, dann werden die Preise angezeigt.


    Die Preise stehen in einem Array und die Werte werden mit einer foreach Schleife vergeben und in eine Tabelle angezeigt. Wenn ich den HTML-Code in PHP schreibe dann funktonierts.


    Wenn ich es trenne erscheinen keine EInträge in der Tabelle. Hab nachgeschaut aber nichts gefunden. Hier der Code.


    HTML-Code in PHP
    [PHP]
    <?php


    if(isset($_POST['send_prcie']) && (strtolower($_POST['send_price']))) {

    if(strtoupper($_SERVER['REQUEST_METHOD'] == 'POST')) {

    $package_small = array(
    'small_one'=>10.00,
    'small_two'=>25.00,
    'small_three'=>50.00
    );


    echo '<table border="1">';
    echo '<tr><td> Name </td> <td>Preis</td></tr>';
    foreach($package_small as $key=>$value) {
    echo '<tr>';
    echo '<td>' . $key . '</td>';
    echo '<td>' . $value . '</td>';
    echo '</tr>';

    }

    }

    }

    ?>
    [/PHP]



    HTML-Code getrennt mit PHP (funktoniert nicht)
    [PHP]
    <?php



    if(isset($_POST['send_price']) && (strtolower($_POST['send_price']))) {

    if(strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {

    $package_small = array(
    'small_one'=>10.00,
    'small_two'=>25.00,
    'small_three'=>50.00
    );

    ?>
    <table border="1">
    <tr><td> Packet </td> <td>Preis in &euro;</td></tr>
    <?php foreach($package_small as $key=>$value) { ?>
    <tr>
    <td> <?php $key ?> </td>
    <td> <?php $value ?> </td>
    </tr>
    <?php
    }

    }
    }
    ?>
    <form action="<?php $_SERVER['REQUEST_METHOD']?>" method="POST">
    <input type="submit" name="send_price">
    [/PHP]

  • Wenn Du in enm HTML-Document PHP auf machst: <?php
    dann würde ein $varName; nichts bewirken.
    Du willst es ja an dieser Stelle ausgeben:

    HTML
    html ... text usw 
    <a> .... </a>
    test
    <?php echo $varName; ?>
    mehr text


    =)

  • Oder so..:

  • Danke hat geklappt :)


    Kurze Frage am Rande:


    Wieso funktoniert , strtoupper($_SERVER['REQUEST_METHOD'] == 'POST') nicht? wenn ich es klein schreibe werde ich immer noch weitergeitet.


    @cotton , habe es ohne echo $_SERVER['REQUEST_METHOD'] gemacht , da der mir sonst GET anzeigt.

  • jetzt seh ich gerade, da ist ja einiges "krum".
    Erstmal:

    PHP
    strtoupper(  $_SERVER['REQUEST_METHOD'] == 'POST'  )
    // geht gar nicht das gehört so:
    strtoupper($_SERVER['REQUEST_METHOD']) == 'POST'


    Und warum sollte die request method in der Form-Action stehen?

    PHP
    <form action="<?php $_SERVER['REQUEST_METHOD']?>" method="POST">
    // in die action gehört das ziel -- zB /index.php oder "" (leer) für das gleiche script, ...



  • Zitat

    [PHP]
    if(strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') // sehe den sinn nicht.
    [/PHP]


    Man kann ja den HTML-Code manipulieren. Ich meine ich muss es irgendwie sicher machen.

  • Spricht nix dagegen. Ich meine ja nur -- wenn Du eine $_POST-Variable ausliest, dann kam die über POST.
    Ich will Dich davon nicht abbringen. Im just sayin :D


    Du kannst Natürlich ganz am Anfang klarstellen:

    PHP
    if(strtoupper($_SERVER['REQUEST_METHOD']) != 'POST'){
        // hier kam keine post request -- hier gehts nicht weiter
        // exit, oder was auch immer getan werden muss
    }
  • Na und, was hilft es das HTML zu manipulieren, wenn der Server dann einfach NIX damit macht? ^^
    Ein einfaches

    HTML
    <form method="post">

    reicht vollkommen aus


    Gibt noch eine viel einfacher Version..

    HTML
    <a href="?show">show</a>

    und dann

    PHP
    if(isset($_GET['show'])){
      //code
    }

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!