试图创建一个函数执行函数

时间:2017-03-06 14:11:10

标签: javascript ajax

我试图创建一个执行此功能callFunction();

的函数

我正在尝试使用AJAX从PHP文件执行JS函数

因为我有AJAX responseText我尝试使用

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

但它不起作用,我试图做这样的事情

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

如果不存在类似的东西,如何从PHP请求中调用AJAX函数(通过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>';

2 个答案:

答案 0 :(得分:0)

确保将有效的函数名称传递给执行它的函数,如下所示:

&#13;
&#13;
function saySomething($something){
	console.log($something);
}

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


executeFunction(saySomething,"Yay, it works!");
&#13;
&#13;
&#13;

答案 1 :(得分:0)

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

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

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

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

window[fnName](params);
&#13;
&#13;
&#13;