如何将变量对象传递到多个javascript弹出窗体
How to pass variable objects to multiple javascript popup forms
这是我第一次认真研究javascript/ajax。
概述:我有一个索引页,列出了多条记录,每条记录都在不同的行上。对于每条记录,我都有一个链接,它会弹出一个包含符号形式的小javascript窗口。一切都很顺利,只是我不知道如何将每条记录的对象Id传递给弹出的javascript。这是我的:
从行动开始:
public function executeTrackReferrals(sfWebRequest $request){
$userId = $this->getUser()->getId();
$this->pager = new sfDoctrinePager('referral', sfConfig::get('app_pager'));
$this->pager->setQuery(Doctrine_Core::getTable('Referral_submissions')->getUsersSubmissions($userId));
$this->pager->setPage($request->getParameter('page', 1));
$this->pager->init();}
主索引页:
<?php
include_partial('<a bunch of other includes >');
include_partial('referral/rtsIndex', array('pager' => $pager));
?>
_rtsIndex部分:
<table>
<?php foreach ($pager->getResults() as $r => $referral): ?>
<?php
$referralObject = Doctrine_Core::getTable('referral')->getReferralObjectById($referral->getId());
$submissionObject = Doctrine_Core::getTable('referral_submissions')->getObjectByReferralId($referralObject->getId());
?>
<TR VALIGN=TOP>
<td WIDTH=10% ALIGN="center" class="_7">
<P ALIGN=CENTER>
<script type='text/javascript'>
$('.popup_changestatus').click(function(){
// put the row id into the hidden field in the popup
var rowId = $(this).parent().find('span.row_id').html();
$('test').val(rowId);
fg_popup_form("fg_formContainer","fg_form_InnerContainer","fg_backgroundpopup");
return false;
});
</script>
<a href="#" class="popup_changestatus">
<?php echo utilities::getStatusCode($submissionObject->getCandidateStatus()); ?>
</a>
<span class="row_id" style="display: none">
<?php echo $referral->getId() ?>
</span>
</P>
</td>
</TR>
</table>
上面提到的Javascript弹出表单代码,包括以下行:
<?php include_partial('referral/changeStatusCodeForm'); ?>
上一行显示了实际的符号形式:
_changeStatusCodeForm部分:
<?php
$object = new referral_submissionsForm(<this is where I need to pass an ID for each popup form>);
echo $object;
?>
有人能指引我朝正确的方向走吗?
如果对实际的javascript代码感兴趣,它是一个非常漂亮的开源弹出窗口:http://www.html-form-guide.com/contact-form/simple-modal-popup-contact-form.html
编辑:以下是contactform-code.php的内容:
<script type='text/javascript' src='/project/misc/simple-popup-form-1/scripts/gen_validatorv31.js'></script>
<script type='text/javascript' src='/project/misc/simple-popup-form-1/scripts/fg_ajax.js'></script>
<script type='text/javascript' src='/project/misc/simple-popup-form-1/scripts/fg_moveable_popup.js'></script>
<script type='text/javascript' src='/project/misc/simple-popup-form-1/scripts/fg_form_submitter.js'></script>
<div id='fg_formContainer'>
<div id="fg_container_header">
<div id="fg_box_Title">Change Status</div>
<div id="fg_box_Close"><a href="javascript:fg_hideform('fg_formContainer','fg_backgroundpopup');">Close(X)</a></div>
</div>
<div id="fg_form_InnerContainer">
<form id='contactus' action='javascript:fg_submit_form()' method='post' accept-charset='UTF-8'>
<input type='hidden' name='submitted' id='submitted' value='1'/>
<input type='hidden' name='<?php echo $formproc->GetFormIDInputName(); ?>' value='<?php echo $formproc->GetFormIDInputValue(); ?>'/>
<input type='text' class='spmhidip' name='<?php echo $formproc->GetSpamTrapInputName(); ?>' />
<div class='short_explanation'>* required fields</div>
<div id='fg_server_errors' class='error'></div>
<div class='container'>
<?php
// $form = new referral_submissionsForm();
include_partial('referral/changeStatusCodeForm');
?>
</form>
</div>
</div>
首先,您不应该在模型中直接使用Doctrine_Core
。在这里,最好的方法是在将查询传递给寻呼机时,在2个表上生成leftJoin
。然后,在您的模板中,您只需获取关系(如$object->getRelation()
)。
关于您的问题,您应该在构建<div id='fg_formContainer'>
时传递ID,因为它是弹出窗口的内容。零件来自这个文件:contactform-code.php
。
告诉我们你在哪里建造这个div
,你就有了通过id
的地方。
编辑:
我终于明白你的问题了。您的页面上有一个弹出定义,可以在每行每次单击时调用。您想知道如何将行id传递到全局弹出窗口。
这可以在javascript中完成。代替:
<a href='javascript:fg_popup_form("fg_formContainer","fg_form_InnerContainer","fg_backgroundpopup" );'>
<?php echo utilities::getStatusCode($submissionObject->getCandidateStatus()); ?>
</a>
你可以更好地使用:
<a href="#" class="popup_contact">
<?php echo utilities::getStatusCode($submissionObject->getCandidateStatus()); ?>
</a>
<!-- use this hidden span to put the row id, to be able to retrieve it using jQuery -->
<span class="row_id" style="display: none">
<?php echo $referral->getId() ?>
</span>
然后,使用jQuery定义一个操作(例如):
$('.popup_contact').click(function() {
// put the row id into the hidden field in the popup
var rowId = $(this).parent().find('span.row_id').html();
$('#submitted').val(rowId);
fg_popup_form("fg_formContainer", "fg_form_InnerContainer", "fg_backgroundpopup");
return false;
})
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 如何添加CSS&JavaScript进入Windows窗体应用程序C#.net
- 如何从窗体调用外部javascript方法
- 将C#变量传递给ASP Web窗体中的JavaScript
- Javascript-如何在窗体上方显示数组的值
- MVC:使用Web窗体视图引擎在javascript中迭代Viewbag数组
- 在windowsphone javascript中visted一次后的非活动窗体
- 带Javascript的条件窗体
- 访问子窗体的asp代码隐藏中的javascript window.myvariable
- Javascript显示窗体的隐藏变量
- 在Dynamics窗体中加载多个依赖的javascript web资源
- 在Vanilla Javascript中使用窗体中的对象原型创建多个用户
- 如何将变量对象传递到多个javascript弹出窗体
- 用于向下滑动窗体的Javascript
- 使用母版页通过窗体在 asp.net 中调用 JavaScript 函数
- 从 GridView 执行 Javascript 函数 ItemTemplate“按钮单击”Web 窗体 ASP.NET
- 在 ASP.NET Web 窗体中从 javascript/客户端设置属性背后的代码
- 从 ASP.NET Web 窗体中的服务器端属性创建 JavaScript 条件
- 从窗体中获取值,并使用 JavaScript 将该值插入表中
- 如何在 JavaScript 中设置下拉列表的选定值.“共享点列表”窗体