jquery中如何将函数放入数组变量并执行?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery中如何将函数放入数组变量并执行?相关的知识,希望对你有一定的参考价值。
自己做的一个弹出层代码,本意是在调用的时候可以设置各种参数和返回动作
JQ代码如下:
var Dialog =
Init://初始化参数集
"ID":"Dialog",//窗口ID
……
"Back":null//回调函数
,
Open : function(tPara)//弹出窗口
if(!tPara) tPara = ;
if(typeof tPara["ID"] != "undefined")this.Init["ID"] = tPara["ID"];
……
if(typeof tPara["Back"] != "undefined")this.Init["Back"] = tPara["Back"];
……
,
……
;
网页调用方法如下:
Dialog.Open(
“Title”:“弹出窗口标题”,
“Content”:“弹出窗口内容测试”,
”Back“:function()$(“#ceshi”).html(“我是结果”);
);
在实际测试过程中,Title、Content等参数都能正常传入和使用,但是Back参数不知道如何调用,请问如何在JQ中运行Back传入的函数?
this.Init["Back"] ()
其实最好检验一个是否是function
if(typeof tPara["Back"] == "function")this.Init["Back"] = tPara["Back"];
this.Init["Back"] ()本回答被提问者采纳
使用jquery发布变量时如何修复“未定义索引”[重复]
【中文标题】使用jquery发布变量时如何修复“未定义索引”[重复]【英文标题】:How to fix 'undefined index' when posting a variable using jquery [duplicate] 【发布时间】:2019-12-17 17:08:58 【问题描述】:我将一些变量发布到 php 文件中。变量来自表格。因此,当我将变量放入表单时,它们会发布到 php 文件中。但是,当我想实际使用变量时,它们会以未定义索引的形式出现。我必须使用 json_encode 并使用 post 回调函数检索变量。但我希望变量在使用 get 函数/方法时起作用。我是初学者,所以请放轻松。
我尝试将 post 函数放在 get get 函数之前。 我曾尝试使用 json_decode 我尝试使用 $_REQUEST 而不是 $_POST 如果 json_encode 只是用来回显 $_POST 变量,那么它将显示在回调“成功”函数中。但我希望在代码中大量使用 $_POST 变量,并显示何时使用 get 函数。 查看其他人的答案,我发现 $_POST 的索引显然是未定义/空的。但我的代码将表单发送到 PHP,所以它不应该为空。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
</head>
<body>
<h1>Combining HTML, JS & PHP</h1>
<form id="IPLAnalyisForm" method="post">
<div>
<select name="opponent">
<option name = "Sunrisers Hyderabad" value="Sunrisers Hyderabad">Sunrisers Hyderabad</option>
<option name = "Royal Challengers Bangalore" value="Royal Challengers Bangalore">Royal Challengers Bangalore</option>
<option name = "Kolkata Knight Riders" value="Kolkata Knight Riders">Kolkata Knight Riders</option>
<option name = "Delhi Daredevils" value="Delhi Daredevils">Delhi Daredevils</option>
<option name = "Kings XI Punjab" value="Kings XI Punjab">Kings XI Punjab</option>
<option name = "Rajasthan Royals" value="Rajasthan Royals">Rajasthan Royals</option>
</select>
<input onclick="getData()" type="submit" name="submit" id="submit" value="submit parameters"/>
</div>
</form>
<button onclick="getData()">Submit query</button>
<div id = "result"></div>
<script type="text/javascript">
</script>
</body>
<script src="IPL.js"></script>
</html>
JavaScript(带有一些 Jquery) var obj, dbParam, xmlhttp;
$(document).ready(function()
$('#IPLAnalyisForm').submit(function(e)
e.preventDefault();
$.ajax(
type: "POST",
url: 'IPL.php',
data: $(this).serialize(),
success: function()
// var jsonData = JSON.parse(response);
// alert(jsonData);
);
);
);
function getData()
obj = "table": "batting", "limit": 5;
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function ()
if (this.readyState == 4 && this.status == 200)
document.getElementById("result").innerHTML = this.responseText;
;
xmlhttp.open("GET", "IPL.php?x=" + dbParam, true);
xmlhttp.send();
PHP 代码
$opponent = $_POST['opponent'];
echo $opponent;
【问题讨论】:
致所有已回答的人。非常感谢你。我非常感谢您的友好回答。继续努力吧。我会试试你的答案。 【参考方案1】:您将获得以下XMLHttpRequest
的undefined
索引
function getData()
obj = "table": "batting", "limit": 5;
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function ()
if (this.readyState == 4 && this.status == 200)
document.getElementById("result").innerHTML = this.responseText;
;
xmlhttp.open("GET", "IPL.php?x=" + dbParam, true);
xmlhttp.send();
在您的IPL.php
文件中,您尝试访问$_POST
的opponent
索引,但是当您从getData()
请求时,您没有设置参数opponent
。
因此,您应该通过XMLHttpRequest
使用opponent
参数执行POST 请求,或者通过isset
像检查PHP 端
$opponent = isset($_POST['opponent']) ? $_POST['opponent'] : null;
echo $opponent;
【讨论】:
以上是关于jquery中如何将函数放入数组变量并执行?的主要内容,如果未能解决你的问题,请参考以下文章