Monitor 这将加载 Flash 内容: var js = jQuery.noConflict(); var startMonitor -6ren">
gpt4 book ai didi

PHP 到 jquery dialog() 交互问题。

转载 作者:可可西里 更新时间:2023-10-31 22:14:36 26 4
gpt4 key购买 nike

我有一个 html 按钮:

<button id="monitor" onclick="startMonitor('<?php echo $result_cameras[$i]["camera_hash"]; ?>', '<?php echo $result_cameras[$i]["camera_name"]; ?>', '<?php echo $camera_quality_flash; ?>');">Monitor</button>

这将加载 Flash 内容:

<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
<script type="text/javascript">
var js = jQuery.noConflict();

var startMonitor = function(cameraHash, cameraName, cameraFlashQuality) {
var url = ['flash/app.php?user=<?php echo $id_hash; ?>', 'camera=' + cameraHash, 'name=' + encodeURIComponent(cameraName), 'quality=' + cameraFlashQuality].join('&');
js('<div></div>').load(url, function() {
js(this).dialog();
});
};

我想使用 jquery 对话框打开此内容。传入的所有内容似乎都是完美的(根据来自 firebug 的 GET 响应),但我仍然收到 jquery 错误。

缺少;在语句 jquery.js 行 612 之前

我做错了什么?我什至不确定如何调试它。提前致谢。

编辑:Firebug 将 GET 报告为:http://myurl.com/flash/app.php?user=dee8c751cfdd2b5fb8194a3a9bac12044621df3d&camera=8f753c6bb3a8d9852a220abff0ed0d7686563007&name=test22&quality=0。我期望这些值。

如果我将此 url 粘贴到我的浏览器中,flash 应用程序将按预期在浏览器中启动,但显然不会使用 jquery 对话框。我的 jquery 代码一定有问题吗?

最佳答案

(已删除不正确的答案。)


编辑:

最初,我将 jquery.js 误解为您创建的文件,而不是真正的 jquery。测试代码后,我可以看出您发送的数据可能是问题所在。你能发布一个包含 $result_cameras[$i]["camera_hash"], $result_cameras[$i]["camera_name"], 数据的样本吗$camera_quality_flash$id_hash?另外,结果的 url 的值是多少?


解决方法:

按钮提交表单,页面正在重新加载。对话框显示,但随后页面立即重新加载,因此似乎从未有过对话框。为了防止这种行为,按钮的 click() 函数必须返回 false(如果没有返回值,则将其视为 true 结果)。

关于这个解决方案的注释:

  1. 依赖于存在的对象,所以我将所有内容都移动到 ready() 事件中。
  2. 假设这是一个循环内的众多按钮之一(因为 PHP 代码中的 $i 变量),因此数据位于按钮的属性中。
  3. 由于可能有多个按钮具有相同的功能,因此它被概括为多个按钮。
  4. jQuery 加载命令(参见 http://api.jquery.com/load/)需要 3 个参数:
    • 网址
    • 一些数据
    • 加载返回时的回调函数(如果你只提供2个参数,第二个被认为是回调函数)。回调参数为:
      • responseText,从服务器返回的 HTML
      • textStatus,状态消息
      • XMLHttpRequest,请求接口(interface),可用于查看有关请求的各种信息(参见,http://www.w3.org/TR/XMLHttpRequest/)

HTML 测试文件:

<html>
<head>
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
</head>
<body>
<form>
<?php
$i = 0;
$result_cameras = array(array("camera_hash" => "test1", "camera_name" => "test2"));
$camera_quality_flash = 1;
$id_hash = "hashish";

echo '<button id="monitor1" class="monitor" camHash="' . $result_cameras[$i]["camera_hash"] . '" camName="' . $result_cameras[$i]["camera_name"] . '" camQual="' . $camera_quality_flash . '" >Monitor 1</button>';
echo '<button id="monitor2" class="monitor" camHash="' . $result_cameras[$i]["camera_hash"] . '-2" camName="' . $result_cameras[$i]["camera_name"] . '-2" camQual="' . $camera_quality_flash . '-2" >Monitor 2</button>';
?>
<div class="tester">TEST DIV</div>
</form>
</body>

<script type="text/javascript">
var js = jQuery.noConflict();
js(document).ready(function(){

var monitor = js(".monitor");
//alert(monitor[1]);

monitor.each(
function(i){
js(this).click(
function(){
//alert(js(this).attr('camHash'));
startMonitor(
js(this).attr('camHash'),
js(this).attr('camName'),
js(this).attr('camQual')
);
return false;
}
);
}
);

var startMonitor = function(cameraHash, cameraName, cameraFlashQuality) {

var url = [
'flash/app.php?user=<?php echo $id_hash; ?>',
'camera=' + cameraHash,
'name=' + encodeURIComponent(cameraName),
'quality=' + cameraFlashQuality
].join('&');

js('<div>TEST DIV 2</div>').load(url
, function(response, status, xhr) {
js('.tester').text( "<div>xhr: <br />"
+ xhr.status + "<br />"
+ xhr.statusText + "<br />"
+ xhr.getAllResponseHeaders() + "<br />"
+ xhr.responseText + "<br />"
+ xhr.responseXML + "<br />"
+ "</div>"
);
// js(this).dialog();
}
);
};
});
</script>

</html>

关于PHP 到 jquery dialog() 交互问题。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8797519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com