Zend Framework 2是PHP 5.3+ 5.4(适用于Zend Framework 2.4+)或5.5+(适用于Zend Framework 2.5.0+)MVC框架和组件库。
我有一个页面,在 foreach 循环中生成 n 个链接: ...一些 html 和 php 代码 ...生成一些元素... 我有一个页面,在 foreach 循环中生成 n 个链接: ...some html and php code <?php foreach ($tables as $table):?> ... some elements generated ... <td><a onclick="setPortalId(<?php echo $table['id']?>);$('#fileupload').trigger('click');" class="btn-success btn-sm"><i class="icon-plus white bigger-125"></i>Add / Change</a></td> ... another elements ... <?php endforeach;?> 如您所见,每个链接中的 onclick 事件执行 2 个 js 函数,第一个使用 php 值 $table['id'] 设置一个 js var,因为我需要这个值来确定我的 zend 路由,最后一个函数触发文件类型的输入 fileUpload: <input id="fileupload" type="file" class="hidden" multiple="" name="files[]"> 在脚本中我有这个: <script src="/js/vendor/jquery.ui.widget.js"></script> <!-- The Iframe Transport is required for browsers without support for XHR file uploads --> <script src="/js/jquery.iframe-transport.js"></script> <!-- The basic File Upload plugin --> <script src="/js/jquery.fileupload.js"></script> <!-- Bootstrap JS is not required, but included for the responsive demo navigation --> <script src="//netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> <script> var idPortal; function setPortalId(valor) { idPortal = valor; } /*jslint unparam: true */ /*global window, $ */ $(function () { 'use strict'; // Change this to the location of your server-side upload handler: var url = '/precos/upload/id/'+ idPortal; $('#fileupload').fileupload({ url: url, dataType: 'json', done: function (e, data) { $.each(data.result.files, function (index, file) { $('<p/>').text(file.name + " adicionado").appendTo('#files'); window.alert(file.name + " Adicionado."); }); }, progressall: function (e, data) { var progress = parseInt(data.loaded / data.total * 100, 10); $('#progress .progress-bar').css( 'width', progress + '%' ); } }).prop('disabled', !$.support.fileInput) .parent().addClass($.support.fileInput ? undefined : 'disabled'); }); </script> 我的问题是如何获取上次自调用功能中单击的链接的 idPortal?有什么建议吗? 这是可怕的设计。你应该尽量让你的 JS 尽可能不引人注目,即。不要使用像 onclick 这样的事件处理程序属性。通过 JS 附加事件处理程序。有时这是不切实际的,但我没有看到任何证据表明这种情况。 我在 PHP 方面要做的是添加一些类和一个数据属性,我可以从 JS 中挂钩: <?php foreach ($tables as $table):?> <td> <a data-portal-id="<?php echo $table['id']?>" class="btn-success btn-sm btn-upload"><i class="icon-plus white bigger-125"></i>Add / Change</a> </td> <?php endforeach;?> 现在在 JS 端,我只需从单击的链接中读取 data-portal-id,用它来设置文件上传器上的 URL,然后触发单击以开始上传工作流程: $(selectorForTheTable).on('click', 'a[data-portal-id].btn-upload', function (e) { // pull the portalId from the link's data-portal-id attribute var portalId = $(this).data('portalId'), $uploader = $('#fileupload'); // set the url for the upload based on out portalId $uploader.fileupload('option', 'url', '/precos/upload/id/'+ portalId); // invoke the click $('#fileupload').trigger('click'); }); 这里缺少的一件事是,您可能需要进行一些设置,以便当上传器关闭或所有上传完成时,URL 将设置回 null 或无结果的 URL。这将有助于确保客户端出现问题时不会错误地将文件上传到错误的端点。 这是一个 Fiddle 示例,它的功能与 Fiddle 一样多:-) 您需要将您的网址设置为全局,并稍后在该上下文中更新它。像这样使用 var idPortal; var url; function setPortalId(valor) { idPortal = valor; url = '/precos/upload/id/'+ idPortal; } 分离 PHP(服务器端业务逻辑)和 Javascript(非业务关键 GUI 增强)的最简单方法是将 PHP 中的所有变量放入 DOM,然后使用它: <script> var phpValues = <?php echo json_encode($yourPhpValuesArrayOrObject); ?>; </script> .... <script> 与 HTML 内部的业务数据相关的属性(=语义结构)应与前面提到的 data-* 属性一起使用。 您在页面首次加载时设置 url,而不是在用户单击链接后设置。将其添加到 setPortalId 函数中: function setPortalId(valor) { idPortal = valor; url = '/precos/upload/id/'+ idPortal; } 谢谢大家,但是我使用了另一种方法来获取单击元素的正确值。就像所说的那样,该函数是在页面加载时自调用的,所以此时全局变量仍然为空。我使用blueimp jquery 文件上传,所以阅读我看到的文档,可以在 ajax 请求期间发送另一个值,只需在表单中添加新闻输入。这样我解决了我的问题。
我正在寻找一种方法来测试连接是否与 Doctrine 2 一起工作。 由于在我的应用程序中用户可以自行更改信息连接,我想检查用户是否已输入...
我正在使用 ZF2 骨架应用程序,它有一个 .gitignore 可以防止外部库提交到 git。在调试时,我喜欢去改变库中的东西......
我想以老式方式在 zend2 中执行查询。我想编写查询并执行它。我不想使用函数 save()、update()、delete()。 这是我的模型: 命名空间应用程序\
从 zendframework2 迁移到 laminas 后找不到“Laminas\View\HelperPluginManager”类
我使用 laminas 迁移工具将我的项目从 zendframework2 迁移到 laminas。 当我尝试使用以下命令初始化我的应用程序时,我遇到了这些问题: Laminas\Mvc\Application::init(需要 'config/applic...
Zend Framework 2 和 Doctrine 2 - 多个数据库的配置
我将configuration.md文件中的代码粘贴到 模块.config.php '学说' => 数组( '连接' => 数组( 'orm_crawler' => 数组( 'driverClass' ...
我目前正在开发 PHP Laminas 框架应用程序,并且遇到了路由问题。 情况如下:当用户尝试登录时,如果他们的密码已过期,则他们
我即将开始使用 REST API 开发应用程序,并且我想使用敏捷性。不幸的是,这个想法有一个问题。我找不到可靠的信息来源如何允许
我很难找到在 Ubuntu 14.04 中安装 PHP intl 扩展的确切方法。 我尝试使用 sudo apt-get install php5-intl 但显示错误无法找到包。 我真的很需要这个
Zend Framework 2 Doctrine 2 一对多复选框水合
我有一个ManyToMany,我将其分解为OneToMany 和ManyToOne 关系。我想构建一个具有复选框而不是集合的表单,并且我正在使用“DoctrineObject”水合器,但它确实...
composer 说 zend-serviccemanager 2.7.8 与 zendframework 2.4.0 冲突
我有一个必须维护的遗留系统,目前我无法将其更新为最新技术 但是我遇到了 AWS S3 的问题,尝试了一些东西后,我决定重新安装依赖项...
Zend framework 3 ORDER BY FIELD
在Zend框架3中如何写下面的查询?SELECT * FROM table_name ORDER BY FIELD(field_name, 'a','b','c'); 谢谢! 我试过$select->order(new Expression("FIELD(field_name, ...
我正在创建一个网站与Laminas(新的zend框架)。我必须调整上传图片的大小。图片不是使用zend表格上传,因为我创建了一个dropzone。问题是,我需要...
我有一个自定义的验证器: class CustomValidator extends RecordExists { public function isValid($value, array $context = null) { / 一些行为返回parent::isValid($ ...
我想创建一个服务,帮助用户从系统管理面板动态加载模块。这是我的代码: if(!$this->isModuleInstalled($moduleName)) { $ ...
我正在尝试使用Zend Framework 2在放在不同数据库中的两个表之间建立联接。第一个表称为用户,并存储在数据库admin中。第二个表称为...
我有一个地址实体,该实体绑定到ZF /薄片形式。定义了一些属性。例如街道,国家/地区.... / ** * @var字符串* * @ORM \ Column(type =“ string”,length = 2)* /受保护的$ ...
我对控制器插件有一个问题:Redirect.php,我已经读过它,但是仍然不清楚/ ** *根据给定的路由生成重定向响应* * @ ...
使用Doctrine作为水合器的Zend Framework 2形式问题
我遇到的问题比列出的问题还要多,试图找出如何在&@#$ *&中使Doctrine在Zend 2中工作,并使用填充数据的表单。 (可用的文档会叮咬!!!)...] >>
我正在使用Zend Framework 2生成以下转义的单引号SQL查询,SELECT`document`。* FROM`document` WHERE(`document`.`document_taxon` Like'%Men \'s Health%...