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 函数

如何将参数传递给 Java 线程?

如何将参数传递给进程

如何通过反射将参数传递给方法

如何将参数传递给 erlang os:cmd()?

将 NSDictionary 作为参数传递给 UITapGestureRecognizer