Bestimmter Befehl bei einem Button

peter333

Erfahrenes Mitglied
Hallo zusammen.

Ich habe ein Problem und ich weiß nicht, wie und womit ich es lösen kann. Ich denke aber, dass es mit Java lösbar ist.
Ich habe einen HTML Button und wenn ich auf diesen klicke soll ein PHP Script im Hintergrund ausgeführt werden. Jedoch soll im Vorderdrung keine neue Seite geladen werden.

<input type="button" value="Schaltfläche" name="B3" >

We würde der Code aussehen der die Fragezeichen oben ersetzt, wenn das PHP script "../mein_php.php" heißt?

Danke und lieben Gruß
Peter
 
Hi,

mit Ajax ist dein Vorhaben realisierbar. Erst gestern hatten wir einen Thread, der sich damit beschäftigt hat.

Etwas allgemeiner - ein Openbook.

Ansonsten - wenn es nur darum geht, ein PHP-Script anzustossen, ohne dessen Antwort zu benötigen, könntest du es auch über ein Bildobjekt realisieren.
Code:
var objImg = new Image();
objImg.src = "../mein_php.php?" + new Date().getTime();
Ciao
Quaese
 
also es ist eigentlich recht einfach. Du brauchst drei Dateien.

1. PHP Seite mit deinem Button ( Anzeige.php )
2. javascript datei die dir den Ajax krimskram macht und die php datei ausführt ( Ajax.js )
3. die PHP Datei die ausgeführt werden soll ( Ausfuehr.php )

1. PHP/Button/HTML ( Anzeige.php )

PHP:
<html>
   <body>

<!-- include der javascript Datei -->
<script language="JavaScript" type="text/javascript" src="./Ajax.js"></script>

<script>
function AjaxAufruf(){
// Aufruf der function aus der Ajax.js datei
          Request;
   }
</script>

<button onclick="AjaxAufruf">Go PHP Background</button>

   </body>
</html>

2. so nun die ( Ajax.js )

PHP:
// das hier nicht verändern einfach so hinnehmen *GG*
function createXMLHttpRequest() {
var ua;

if(window.XMLHttpRequest) {
    try {
      ua = new XMLHttpRequest();
    } catch(e) {
      ua = false;
    }
  } else if(window.ActiveXObject) {

    try {
      ua = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
      ua = false;
    }
  }
  return ua;
}

//Request für php Abfrage
var req = createXMLHttpRequest();

//Diese function wird in der Anzeige.php in der function aufgerufen hier drauf achten das //kein () hinter dem aufruf steht
function Request() {


//führt die Datei Ausführ.php aus wenn du noch werte übergeben musst kannst du die mit //? und & ganz normal an den req.open pfad anhängen z.b.
//req.open('get','./Ausfuehr.php?wert1=hallo&wert2=test');

  req.open('get', './Ausfuehr.php');
  req.onreadystatechange = handleResponse;
  req.send(null);

}

function handleResponse() {
//Wenn du jetzt noch eine Ausgabe von Ausführ.php benötigst kannst du dir die 
//in deiner Anzeige.php in einem <div id="Ausgabe"></div> ausgeben lassen.

	document.getElementById('Ausgabe').innerHTML = req.responseText;
}

3. so und hier kommt die ( Ausfuehr.php ) hier kannst du dein code ausführen.

PHP:
//get beispiel von oben 

echo $_GET['wert1']; // Ausgabe wäre hallo
echo $_GET['wert2']; // Ausgabe wäre test

$rechnen = 1+ 2;
echo $rechnen;

wenn noch fragen sind oder was nicht funktioniert weil ich das gerade aus dem kopf ungetestet runtergetippt habe dann meld dich einfach nochmal ansonsten hoffe ich ich konnte dir helfen.
 
Danke. Das ist schon sehr hilfreich. Eine Frage habe ich noch. Kann ich nun bei diesem Klicken auf den Button eine Variable von Anzeige.php an Ausfuehr.php per POST übergeben, so das in Ausfuehr.php mit der Variable gearbeitet wird, wenn man auf den Button klickt? Das wäre jetzt mein letztes Problem. :-)

LG Peter
 
Jo klar geht das ;)

Parameter per GET:
PHP:
function Request() {
  req.open('get', './Ausfuehr.php?wert1=hallo&wert2=test');
  req.onreadystatechange = handleResponse;
  req.send(null);
}

Parameter per POST:
PHP:
function Request() {
  req.open('post', './Ausfuehr.php');
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  req.onreadystatechange = handleResponse;
  req.send('wert1=hallo&wert2=test');
}

Und in PHP kannst du dann einfach per $_POST['wert1'] auf den Wert zugreifen.
 
Hallo nochmal,

danke mal wieder für die gute Antwort.
Werden dann alle PHP Variablen aus der Anzeig.php an Ausfuehr.php übermittelt oder welche Variablen werden dann gesendet? Müssen die Variablen vielleicht an einer bestimmten Stelle in der Anzeig.php stehen? Sorry wenn ich ein bisschen blöd frage, aber mit AJAX hatte ich bis lang nicht viel zu tun.
 
Es werden nur die Variablen übermittelt die du in die Parameter einträgst.

Ein Beispiel:
Anzeig.php
Du hast 2 Javascript Variablen.
PHP:
var hallo = "Hallo";
var welt = "Welt!";
Diese kannst du per GET oder POST über AJAX an die Ausfuehr.php übergeben
PHP:
// GET
req.open('get', './Ausfuehr.php?wert1='+ hallo +'&wert2='+ welt);

// POST
req.open('post', './Ausfuehr.php');
req.send('wert1='+ hallo +'&wert2='+ welt);

Ausfuehr.php:
Diese 2 Variablen kannst du dann so ausgeben
PHP:
// GET
echo $_GET['wert1']." ".$_GET['wert2']; // Ausgabe: Hallo Welt!
// POST
echo $_POST['wert1']." ".$_POST['wert2']; // Ausgabe: Hallo Welt!

Das sind natürlich alles nur Codeschnipsel und kein kompletter Code.
 

Neue Beiträge

Zurück