Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: php in zelfde pagina.  (gelezen 782 keer)

Offline rcb8dboy

  • Lid
php in zelfde pagina.
« Gepost op: 2014/11/26, 12:41:08 »
Hallo

ik ben al een op de goede weg geholpen geweest en heb nog een bijkomend php  vraag waar ik niet direct een oplossing voor vind na het zelf te testen.

op mijn index pagina heb ik een verwijzing naar base64encode.php.
Die opent op een nieuwe pagina en de codering werkt maar nu wil ik dat ik vanuit de index.html het php script oproep en de uitkomst eronder komt.
Ik heb al geĆ«xperimenteert met $SERVER_SELF en POST ipv GET  maar het wil niet lukken.
Het gaat om de onderste blok met de 2 knoppen codeer en decodeer nu
Als je op codeer nu of decodeer nu zou dit eronder moeten komen ipv in een nieuw tabblad.

http://hitekc4.ddns.net

grts,

Offline Ron

  • Forumteam
    • r0n
    • Dwarsligger
  • Steunpunt: Ja
Re: php in zelfde pagina.
« Reactie #1 Gepost op: 2014/11/26, 13:45:17 »
Noem je index pagina eens index.php.
Je kunt dan de PHP in de pagina opnemen met:
<?php
hier het php script
?>

Een andere mogelijkheid is ook (wanneer de file index.php heet):
<?php
include "base64encode.php";
?>

Is dit wat je bedoeld?
OpenStandaard evangelist, OpenSource promotor, OpenData liefhebber.
Xubuntu gebruiker en voorstander (XFCE).
In Nederland bekend als een Dwarsligger.

Offline rcb8dboy

  • Lid
Re: php in zelfde pagina.
« Reactie #2 Gepost op: 2014/11/26, 15:06:34 »
hallo nee niet echt.
als ik nu op encodeer of decodeer nu klik opent het base64encodeer.php en voert het script uit.
Dan moet ik de pagina herladen om terug op de index te komen.
nu zou ik willen dat als ik op encodeer of decodeer klik de uitkomst in een form eronder komt te staan en ik op de indexpagina blijf.
Hier probeer ik het iets grafisch te tonen :-)
----------------------
- codeer nu-----
----------------------

--------------------------------
--oplossing venster---
--------------------------------

---------------------------
- decodeer nu-----
---------------------------

--------------------------------
--oplossing venster---
--------------------------------
« Laatst bewerkt op: 2014/11/26, 15:10:33 door rcb8dboy »

Offline Ron

  • Forumteam
    • r0n
    • Dwarsligger
  • Steunpunt: Ja
Re: php in zelfde pagina.
« Reactie #3 Gepost op: 2014/11/26, 15:17:14 »
Het is de blank ddiee een nieuw venster opent.
Misschien deze weghalen?
Nu staat er:
<a href ="encode.php?tekst=" target="blank">manueel base64 coderen</a>

Dat wordt dan:
<a href ="encode.php>manueel base64 coderen</a>
OpenStandaard evangelist, OpenSource promotor, OpenData liefhebber.
Xubuntu gebruiker en voorstander (XFCE).
In Nederland bekend als een Dwarsligger.

Offline rcb8dboy

  • Lid
Re: php in zelfde pagina.
« Reactie #4 Gepost op: 2014/11/26, 15:25:19 »
Het is de blank ddiee een nieuw venster opent.
Ja deze mogen blank gaan dat is geen probleem het is het onderste form met de 2 knoppen die moet aangepast worden.
Als je daar je naam in geef en de tekst die gecodeerd moet worden refresht de pagina met het script.
je krijgt dan welkom "naam"
de tekst..........."blah"
de gecodeerde.........'blah"

Maar dit mag niet ik zou willen op de index blijven en base64encode uitvoeren op dezelfde pagina en de uitkomst in een tekstvak eronder
begrijp je  :angel:

edit
een beetje zoals hier waarbij je de input krijgt onder your input
http://www.w3schools.com/php/showphp.asp?filename=demo_form_validation_complete

grts
« Laatst bewerkt op: 2014/11/26, 15:28:34 door rcb8dboy »

Offline profoX

  • Lid
    • wesley
    • Lionslink
  • Steunpunt: Nee
Re: php in zelfde pagina.
« Reactie #5 Gepost op: 2014/12/14, 13:49:22 »
2 opties die ik zo snel kan bedenken.

Let op, ik typ dit uit het hoofd dus mogelijk enkele foutjes.
Heb er voldoende error checking in proberen bouwen, maar mogelijk ben ik wat vergeten.
Het is ook maar bedoeld als voorbeeld.

Optie 1: puur PHP

Voordeel: enkel PHP (geen JavaScript nodig)
Nadeel: pagina wordt herladen na button click (trager en hoger resource usage)

index.php

<?php
$output
"";
$source = isset($_REQUEST["source"]) ? $_REQUEST["source"]  : "";
if (isset(
$_REQUEST["encode"]) { // Encode button is clicked
  
$output base64_encode($source);
} elseif (isset(
$_REQUEST["decode"]) { // Decode button is clicked
  
$output base64_decode($source);
}
?>


<form method="POST">
  <label for="source">Input:</label>
  <textarea id="source" name="source">
    <?php echo htmlspecialchars($source); ?>
  </textarea>
  <input type="submit" id="encode" name="encode" value="Encoderen" />
  <input type="submit" id="decode" name="decode" value="Decoderen" />
  <label for="output">Output:</label>
  <textarea id="output" name="output">
    <?php echo htmlspecialchars($output); ?>
  </textarea>
</form>

Optie 2: AJAX

Voordeel: snel en resourcevriendelijk, geen page reload, directe interactie
Nadeel: JavaScript vereist in browser (tegenwoordig ondersteunt echter elke browser dit)

base64coder.php

<?php
header
('Content-Type: application/json');

$out = array(
  
"ok" => false
);

$action $_REQUEST["action"];
$source $_REQUEST["source"];
if (
$action == "encode") { // Encode requested
  
$out["output"] = base64_encode($source);
  
$out["ok"] = true;
} elseif (isset(
$_REQUEST["decode"]) { // Decode requested
  
$out["output"] = base64_decode($source);
  
$out["ok"] = true;
}

echo 
json_encode($out);
?>


index.html

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
  $(function() {
    $("#encode, #decode").on("click", function() {
      var $btn = $(this);
      var action = $btnId.attr("id");
      var source = $("#source").val();
      $.ajax({
        url: 'base64coder.php',
        type: 'POST',
        dataType: 'json',
        data: {
          action: action,
          source: source,
        },
        success: function(data) {
          if (data && data.ok) {
            $("#output").val(data.output);
          } else {
            alert("Er ging iets mis bij AJAX request (success).");
            console.log("success data received", data);
          }
        },
        error: function(data) {
          alert("Er ging iets mis bij AJAX request (error).");
          console.log("error data received", data);
        }
      });
    });
  });
</script>

<form method="POST">
  <label for="source">Input:</label>
  <textarea id="source" name="source"></textarea>
  <input type="submit" id="encode" name="encode" value="Encoderen" />
  <input type="submit" id="decode" name="decode" value="Decoderen" />
  <label for="output">Output:</label>
  <textarea id="output" name="output"></textarea>
</form>
« Laatst bewerkt op: 2014/12/14, 13:52:55 door profoX »
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline profoX

  • Lid
    • wesley
    • Lionslink
  • Steunpunt: Nee
Re: php in zelfde pagina.
« Reactie #6 Gepost op: 2014/12/26, 17:54:21 »
Heeft dit jou verder kunnen helpen?
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)