【问题标题】:How can I pass the chosen value on a modal-box to PHP?如何将模态框上的选定值传递给 PHP?
【发布时间】:2012-08-10 18:01:24
【问题描述】:

我有初始化模态框的代码:

<script>
var grid_modal_options = {
    height: 'auto',
    width: '80%',
    modal: true
};
function showProductsModalBox() {
    $("#products_modal_box").dialog(grid_modal_options);
    $("#products_modal_box").parent().appendTo('form:first');
}
</script>

<div id="products_modal_box" title="Products" style="display: none;">
  <div class="in">
    <div class="grid-12-12">
      <form id="products_modal_box_form" action="#" method="post">
    <table>
          <thead>
            <tr>
              <th>&nbsp;</th>
              <th>Product</th>
            </tr>
          </thead>
          <!-- Query for read mysql goes here (I skipped this line because it's not the main thing I'm gonna ask since it's run well) /-->
          <tbody>
          <?php
            //read the results
            while($fetch = mysqli_fetch_array($r)) {                
              print "<tr>";
              print "  <td><a href='#'>Choose</a></td>"; //--> How to return the value of $fetch[0]?
              print "  <td>" . $fetch[0] . "</td>"; //$fetch[0] == Product ID
              print "</tr>";
            }
          ?>
          </tbody>
        </table>
      </form>
    </div>
  </div>
</div>

还有:

<input type='text' id='products_id_textbox' name='products_id_textbox' />
<a href='#' onclick='showProductsModalBox(); return false;'>Choose products</a>

代码成功显示模态框。但是如何将用户选择的“产品”返回到文本框“products_id_textbox”?谢谢。

【问题讨论】:

    标签: php jquery modal-dialog


    【解决方案1】:

    添加内联javascript:

    <?php
        while($fetch = mysqli_fetch_array($r)) {                
            print "<tr>";
            print "  <td><a href=\"javascript:;\" onclick=\"$('#products_id_textbox').val('".$fetch[0]."');$('#products_modal_box').dialog('close');\">Choose</a></td>"; //--> How to return the value of $fetch[0]?
            print "  <td>" . $fetch[0] . "</td>"; //$fetch[0] == Product ID
            print "</tr>";
        }
    ?>
    

    【讨论】:

    • @Mihailorga:效果很好!!这很简单! :) 如果您不介意,我还有一个问题,我选择其中一个链接后如何自动关闭模式框?
    • 我已经修改了我的答案...$('#products_modal_box').close(); 像我上面说的那样添加
    • 对不起...这是.dialog('close')
    【解决方案2】:

    代替使用内联JS,你可以这样写(或类似的东西);

    // php
    while($fetch = mysqli_fetch_array($r)) {                
        print "<tr>";
        print "  <td><a rel='dialog' data-id='{$fetch[0]}'>Choose</a></td>";
        print "  <td>{$fetch[0]}</td>";
        print "</tr>";
    }
    
    // js
    $(document).ready(function(){
    ...
    $("a[rel=dialog]").each(function(){
       var id = this.getAttribute("data-id");
       $('#products_id_textbox').val(id);
       $('#products_modal_box').dialog('close');
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 2016-02-14
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 2022-07-27
      相关资源
      最近更新 更多