PHP-Funktion in jQuery Ajax ausführen?

Jan-Frederik Stieler

Monsterator
Moderator
Hallo,
per jQuery und .ajax kann ich ja eine asynchron eine PHP-Datei ausführen lassen.
Javascript:
$(function (){ 
    $('.showrandomname').click(function(){
        $.ajax({
            type: 'POST',
            url: 'modules/mod_randomname/function.php',
            success: function(data){
                $('.name_output').fadeIn().html(data);
            }
        });
    });
});

Nur wie bewerkstellige ich das wenn ich nun hier keine ganze PHP-Datei sondern nur eine function innerhalb einer PHP-Datei ausführen lassen will?

Grüße
 
Hi,
okay, das funktioniert. Auch wenn ich ehrlich nicht so wirklich weiß was ich da übergeben soll.
Ich hab jetzt einfach data: 'name=foo', reingeschrieben. Aber das hat so eigentlich keine Relevanz.

Gibts da irgendwas an Standardwert was man in so einem Fall übergibt?

Grüße
 
Nach dem MVC-Konzept könnte das dann auf der Serverseite so aussehen:
PHP:
class FunctionController {
  public function action_func1() {
    echo func1();
  }

  public function action_func2() {
    echo func2();
  }

  # ...
}

$controller = new FunctionController();

if ( isset( $_POST[ 'action' ] ) && method_exists( $controller, 'action_' . $_POST[ 'action' ] ) ) {
  $action = 'action_' . $_POST[ 'action' ];
  $controller->$action();
} else {
  header( 'HTTP/1.1 404 Not Found' );
}

Und clientseitig dann so:
Javascript:
$(function() {
  $( '.showrandomname' ).on( 'click', function() {
    $.ajax({
      'type'    : 'POST',
      'url'     : 'modules?action=func1',
      'success' : function ( data ) {
        $( '.name_output' ).fadeIn().html( data );
      }
  });
});
 
Hi,
ja es ist ein Joomlamodul und ja da habe ich schon eine MVC-Architektur. Ich habe nur mit den Dateien so einige Probleme.
So wie @einfach nur crack das beschreiben hat, hatte ich das eigentlich auch gedacht zu machen, nur ich bekomm immer wieder Probleme damit entweder die Daten aus dem Backendformular (Params) abzufragen oder ich bekomm Probleme mit dem restricted access. Ich beschreib das nochmal etwas konkreter wenn ich mehr Zeit habe.
 
Ich kenne mich in php nicht wirklich aus aber wenn ich eine Methode in asp aufrufen will geht das
Code:
  $.ajax({
  type: "POST",
  url: "Seite.aspx/Methode",
  data: null,
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function (data) {
   $('.name_output').fadeIn().html(data); // oder
   // $('.name_output').fadeIn().html(data.d);
  },
  error: function (e) {
      alert(e.responsetext);
  }
  });
Es ist noch anzumerken das diese Methode "statisch" und als WebMethod (Webservice) definiert sein muss.
Ich weiß nicht ob sowas auch in php möglich ist.

Hier noch ein Link wie man eine function in php mit ajax und jquery aufrufen kann
http://glennantoine.com/2012/08/11/phpajax-call-php-function/


Lg
ksk
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück