2017-03-06 50 views
0

我试着做,做了这个功能callFunction();试图使一个函数执行功能

我试图使用AJAX

一个PHP文件执行JS的功能,因为我有AJAX responseText我试着使用

<script type="text/javascript"> callFunction(); </script>

,但它没有工作,我试着做这样的事情

function exec(func , arg) { 
    func(arg); // executes the function 
} 

,如果这样的事情是不存在的,我怎么能说与AJAX功能从一个PHP请求(通过GET方法)

我得到的错误,当我尝试它是

FUNC不是函数

JS AJAX代码

   var emailVal = document.getElementById("email").value; 
       var passVal = document.getElementById("password").value; 
       var uVal = document.getElementById("username").value; 
       var busVar = document.getElementById("businessname").value; 
       var firstVal = document.getElementById("firstname").value; 
       var params = "email=" + emailVal + "&password=" + passVal + "&businessname="+busVar + "&username="+uVal+"&firstname="+firstVal; 
       var url = "business.php"; 
       http = new XMLHttpRequest(); 
       http.open("POST", url, true); 

       //Send the proper header information along with the request 
       http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

       http.onreadystatechange = function() { //Call a function when the state changes. 
        if(http.readyState == 4 && http.status == 200) { 
         console.log(http.responseText); 
         exececc(http.responseText , null); 
        } 
       } 

       http.send(params); 

PHP代码

echo '<script type="text/javascript"> callFunction(); </script>';

+0

你需要更多的指定问题。与我们分享更多的代码等等,很难说出你想在这里完成什么。 –

+0

当然!我目前正在添加代码 –

回答

0

好吧,我想我看到的问题,你传递一个字符串到executeFunction()

在这种情况下,试试这个,确保您分配给变量的值fnName & params是字符串并且没有JSON对象。例如,您可能需要执行data [“fnName”]从数据JSON对象中提取函数名称。您可以通过将它们转储到控制台来检查数据类型。

function say($something) { 
 
    console.log($something); 
 
    return; 
 
} 
 

 
var fnName = "say"; 
 
var params = "Hello world" 
 

 
window[fnName](params);

+0

我认为那有效吗?好东西! – Brad

0

请确保您传递一个有效的函数名,以执行它的功能,就像这样:

function saySomething($something){ 
 
\t console.log($something); 
 
} 
 

 
function executeFunction(func,arg){ 
 
\t func(arg); 
 
} 
 

 

 
executeFunction(saySomething,"Yay, it works!");

+0

我复制了你的代码,它给了我同样的错误 –

+0

'func不是一个函数' –

+0

这必须是你要么传递它错误的名称,在它的saySomething作为第一个arg当调用executeFunction时。或者你正在声明函数的文件没有包含在你打这个电话之前 – Brad