JqueryMobile 1.4.0 将参数传递给弹出窗口
Posted
技术标签:
【中文标题】JqueryMobile 1.4.0 将参数传递给弹出窗口【英文标题】:JqueryMobile 1.4.0 pass parameter to popup 【发布时间】:2014-03-14 05:23:50 【问题描述】:我对 jQuery Mobile 和 php 还是很陌生,我遇到了一个问题,我有一个 PHP while 循环
while ( $row = sasql_fetch_array ( $idresult ) )
echo "
<li>
<a href='#' data-rel='popup' data-position-to='window' data-transition='pop'>
<div class='ui-grid-a'>
<div class='ui-block-a'>
<div class='ui-bar ui-bar-a titleRow' style='height:15px'>Identification Type</div>
<div id='idType' class='ui-bar ui-bar-a 'style='height:15px; background-color:transparent; border: none; color: black; font-weight: normal;' >" . $row ['description'] . "</div>
</div>
<div class='ui-block-b'>
<div class='ui-bar ui-bar-a titleRow' style='height:15px'>Details</div>
<div id='idNo' class='ui-bar ui-bar-a ' style='height:15px; background-color:transparent; border: none; color: black; font-weight: normal;'>" . $row ['number'] . "</div>
</div>
</div>
</a>
<a href='#editCustId' data-rel='popup' data-position-to='window' data-transition='pop'>Edit</a>
</li>
";
// end while
echo "</ul>";
// end if
当用户点击编辑按钮时,我需要传递该特定行的 ID。我不确定我应该把它放在哪里,但它可能是这样的......?没有表格时这会起作用吗?
<input type="hidden" name="the_id" value='<?php " . $row ['theid'] . " ?>' />
但是我不知道该怎么做。我尝试将对话框作为新页面打开,即。
<a href='./editCustId.php?id=" . $row['theid'] . "' data-rel='popup' data-position-to='window' data-transition='pop' class='ui-btn ui-btn-inline ui-icon-edit ui-btn-icon-notext'>Edit</a>
点击编辑时会打开此弹出窗口
<div data-role='popup' id='editCustId' data-theme='a' data-overlay-theme='a' data-dismissible='false' style='min-width: 300px;'>
<div data-role='header' data-theme='a'>
<h1>Add ID</h1>
</div>
<div data-role='main' class='ui-content'>
<form id='editId' onsubmit="return false;">
<input type="hidden" name="cust_id" value='<?php echo $custid; ?>' />
<input type="hidden" name="sess_id" value='<?php echo $sid; ?>' />
<!-- <input type="hidden" name="submitted" value="true" /> -->
<div class="ui-field-contain">
<label for="phoneType">Type</label>
<select name="idType" id="idType">
<?php echo $idInnerOptions; ?>
</select>
</div>
<div class="ui-field-contain">
<label for="idDesc">Description</label> <input type="text" name="idDesc" id="idDesc" value="">
</div>
<div class='ui-grid-a'>
<div class='ui-block-a'>
<input type='submit' id="submit" value='Update' class='ui-btn ui-btn-inline' data-transition='pop' />
</div>
<div class='ui-block-b'>
<a href='#' class='ui-btn' data-rel='back' data-transition='pop' id="addIdReset">Cancel</a>
</div>
<div id="success" style="color: black;"></div>
</div>
</form>
</div>
</div>
描述和编号将包含基于单击的链接的相关信息。
我一直在研究通过 ajax 传递数据,但我并没有真正了解我应该做什么?
【问题讨论】:
jquery mobile only one popup for many list items 的可能重复项 谢谢,我会看看这个! 嗨,我已经对此进行了测试,但我根本无法让它工作!我正在使用 jqm 1.4.1 这会有所作为吗? 不,应该没什么区别。您需要对其进行一些更改以适应您的 html 标记,即选择器。使用呈现的 HTML 示例创建一个小提琴。 嗨,好的,谢谢,我现在到了...如果我想传递一个 HTML id 而不是“li a”,例如,我可以做类似 $("theIDofTheLink").on 的事情吗? ("click", function (e) 而不是 $("li a").on("click", function (e) ?感谢您的帮助 【参考方案1】:我认为这里有 2 个问题需要您检查更多:
-
我记得,jquery mobile 的弹出功能适用于具有弹出数据角色的 div 内的代码。因此,您尝试做的不在 JQM 逻辑中。但是,JQM 还允许您在具有弹出数据角色的 div 中使用 iframe,所以这对您来说可能是一个很好的解决方案。
另一种方法是通过 AJAX 将所需页面的内容动态加载到具有弹出数据角色的 div 中。
希望对你有帮助
【讨论】:
您好,感谢您的回答。我发现我的原始代码存在一些问题,我认为我现在已经修复了。你的意思是:另一种方法,可能是通过 AJAX 将您想要的页面内容动态加载到具有弹出数据角色的 div 中。谢谢 由于JQM的弹出功能是针对已经在Dom中的div,你可以做的是有一个链接/按钮,一旦按下调用外部页面的AJAX请求,当它完成时,将 AJAX 响应的内容注入到 DOM 中的 div 中,然后才打开 JQM 弹出窗口。希望这会有所帮助 谢谢,我正在调查这个! 嗨 - 我已经对我的代码进行了一些更改,并且一直在研究使用 AJAX,但我不完全了解如何在不使用表单的情况下执行此操作?你能帮忙吗?我已经编辑了我原来的问题。谢谢 发送一个链接到您目前拥有的工作版本,我会尝试看看以上是关于JqueryMobile 1.4.0 将参数传递给弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章
如何将 POST 参数传递给 Durable Function,然后将此参数传递给 Timer Triggered 函数