【问题标题】:Second button doesn't produce form in same div as first button第二个按钮不会在与第一个按钮相同的 div 中生成表单
【发布时间】:2020-06-30 00:06:33
【问题描述】:

我有一个带有两个 div 的 php 页面。在第一个 div 中,用户单击一个按钮,它会在第二个 div 中显示一个表单。当他们提交表单时,两个 div 都会刷新。一切都很好。但我想在第一个 div 中添加第二个按钮,以在第二个 div 中显示不同的表单。我无法让它工作,要么第一个按钮停止工作,要么第二个按钮不起作用。我尝试将第二个按钮设为 div 并通过其 ID 调用它,但没有成功。我是一个业余爱好者,不太了解 jquery(我认为这是 jquery 无论如何),这只是为一些朋友和我的项目,所以任何帮助将不胜感激。我可能只是不明白这是如何工作的。

<script>
  $(document).ready(function () {
    $("button").click(function () {
      var handle = "<?php echo $_SESSION['name'] ?>";
      $("#infoblock").load("createhandle.html");
    });
  });
</script>

<div id="div1">
  <button id="reservename">Reserve A Name</button>
</div>

<div id="div2"></div>

我在这里找到了解决方案:https://stackoverflow.com/a/20074373/9157720

它最终成为语法和使用井号的问题。这是万一其他人遇到此问题的代码。

<script>
$(document).ready(function(){
                var handle = "<?php echo $_SESSION['name'] ?>";
                $("#reservename").click(function(){
                    $("#infoblock").load( "createhandle.html");
                });
                    $("#uploadpic").click(function(){
                    $("#infoblock").load("uploadpic.html");
                });
                
            });
    </script>

<button id="reservename">Reserve A Name</button>
<button id="uploadpic">Upload A Picture</button>

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    考虑以下内容。

    <script>
      $(document).ready(function () {
        $("button").click(function () {
          var handle = $(this).data("ref");
          var target = $(this).data("target");
          $(target).load("createhandle.html?handle=" + handle);
        });
      });
    </script>
    
    <div id="div1">
      <button data-ref="<?php echo $_SESSION['nameA']; ?>" data-target="#infoblock">Reserve A Name</button>
      <button data-ref="<?php echo $_SESSION['nameB']; ?>" data-target="#div2">Reserve B Name</button>
    </div>
    
    <div id="div2">
    </div>
    

    您的示例有点模棱两可,所以我不确定您要完成什么。如果可以的话,最好不要混合 PHP 和 HTML。您可以在 HTML 中有一个参考点,这样当您需要加载与该按钮相关的内容时,您可以将其传递到独立的 PHP 脚本中,并使用 .load() 获取您需要的 HTML。

    请记住,PHP 是在 HTML 呈现给客户端之前执行的。因此,页面初始加载时,Session 数据必须存在于 PHP 内存中。

    参考:

    【讨论】:

    • 我找到了不同的解决方案,但感谢您的帮助。它帮助我以不同的方式思考问题,从而找到了答案。
    猜你喜欢
    • 2016-11-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多