2011-03-30 6 views
0

Ceci est ma configuration.problème avec jquery et .ajax - réponse vide

J'ai un formulaire d'inscription html, lorsqu'un utilisateur a tapé un nom d'utilisateur, email etc. Les informations sont envoyées comme ceci:

var processFile = "../inc/ajax.inc.php"; 

$("#register").change(function(){ 

    var postdata = $("#register").serialize(); 

    $.ajax({ 
     type: "POST", 
     url: processFile, 
     data: "action=reg_validation&" + postdata , 
     success: function(data){       
     } 

    }); 

    console.log("action=reg_validation&" + postdata); 

}); 

Cette impression par exemple:

action=reg_validation&u=user&p=123&p2=&e=&r= 

Mon fichier ajax.inc.php:

/* 
* Create a lookup array for form actions 
*/ 
$actions = array(
     'reg_validation' => array(
       'object' => 'Intro', 
       'method' => 'check_reg_form' 
     ) 
    ); 

if (isset($actions[$_POST['action']])) 
{ 
    $use_array = $actions[$_POST['action']]; 
    $obj = new $use_array['object']; 

    echo $obj->$use_array['method'];  
} 

function __autoload($class_name) 
{ 
    $filename = '../../sys/class/class.' 
     . strtolower($class_name) . '.inc.php'; 
    if (file_exists($filename)) 
    { 
     include_once $filename; 
    } 
} 

Ce code est censé appeler une classe appelée Intro et une fonction appelée check_reg_form dans class.intro.inc.php. Cela fonctionne presque.

Si je commence mon class.intro.inc.php avec:

echo "test 1"; 
exit(); 

Je reçois test 1 en réponse, mais cela ne fonctionne pas:

class Intro 
{ 
    public function check_reg_form() 
    { 
      echo "test 2"; 
    } 
} 

Je ne sais pas pourquoi cela ne fonctionne pas ... Je reçois une réponse vide quand je devrais obtenir test 2 ..

Répondre

0

Je pense que vous manquez juste parens.

$obj = new $use_array['object']();  
echo $obj->$use_array['method'](); 
+0

Correct! Merci :) – ganjan