【问题标题】:Display form on button click单击按钮时显示表单
【发布时间】:2018-05-07 13:16:10
【问题描述】:

我正在尝试构建一个应用程序,用户可以在其中按下右上角的按钮(见图),该按钮将隐藏一个 div(主题)并显示另一个 div(我可以添加新主题的表单)。

这就是它的样子:

if(isset($actiefboardid)){
  $toppic = $app->get_topics($actiefboardid);
    if(count($toppic)>0){
     foreach($toppic as $topic){
       echo "<div class='user-block'>";
        if(file_exists('assets/images/profielfotos/'.$topic['klant_id'])) {
          echo '<img class="img-circle img-bordered-sm" src="/assets/images/profielfotos/'.$topic['klant_id']. '/' .$topic['foto'].'" />';
        } else {
          echo '<div class="fancyimg"><i class="img-circle img-bordered-sm fa fa-fw fa-user img-circle"></i></div>';
        } 
          echo "<span class='username'><a href='https://tom.lbmedia.nl/boards/".$url[1]."/".$topic['url']."'>". $topic['topicnaam'] . "</a>
           </span><span class='description'>
           <span style='float:right;margin-left:5px;'>".implode($app->count_reactie($topic['id'])) ." reacties
           </span> 
           <span style='float:right; color:lightgrey;' class='fa fa-comment'></span>
           <span class='badge bg-red' style='border-radius: 5px;'>" . implode($app->boards($topic['board_id'])) . "
           </span>
           laatste reactie: " .$app->tijd_reactie($topic['id']) . " door " .$app->reactieDoor($topic['id'])."</div></span>
           <hr></hr>
           <p></p>
             <form class='form-horizontal'>
               <div class='form-group margin-bottom-none'>
               </div>                        
             </form>
            ";
            } 
          } else {
            echo "Er zijn nog geen topics  bij dit board";
          }

这是显示主题的代码。现在我需要实现上述按钮。

【问题讨论】:

    标签: javascript php twitter-bootstrap


    【解决方案1】:

    您可以在触发点击事件时显示/隐藏表单和主题。 所以第一次,显示主题并隐藏表单,点击后,切换它们

    【讨论】:

    • 我有点明白你的意思,但我该怎么做呢?
    • 你也需要学习 JavaScript,你也可以使用一个库来简化你的编码,比如 JQuery 或 AngularJS。比如JQuery有两个函数可以帮你,click()和show()/hide()api.jquery.com/click
    【解决方案2】:

    从高层次的角度来看:

    • 这是客户端功能,因此请使用 Javascript,而不是 PHP
    • 在Javascript中声明一个变量(如var showTable = true)
    • 创建一个 CSS 类,将 {display: hidden} 添加到 HTML 标记中
    • 当用户点击按钮时,将 CSS 类添加到相应的&lt;div>

    虽然这可以在纯 Javascript 中完成,但使用 jQuery 或 Angular 之类的库会让您更轻松地完成这项任务。

    jQuery 示例:

    // In your CSS file
    .hidden {
      display: hidden;
    }
    
    // In your JS File
    var showTable = true;
    $('#myButton').click(function() {
     showTable = !showTable;
     if (showTable) {
       $('#div1').addClass('hidden');
       $('#div2').removeClass('hidden');
     else {
       $('#div2').addClass('hidden');
       $('#div1').removeClass('hidden');
    }
    

    【讨论】:

    • 我明白了如何在 Javascript 中显示和隐藏内容,但我如何做到这一点,当我按下按钮时它不会显示主题
    • 使用上面的代码,将你的主题包装在一个 div 中:&lt;div id="div1&gt;&lt;!-- YOUR TOPICS HERE --&gt;&lt;/div&gt;
    • 然后它会隐藏起来,但不会显示表单??
    • 您的表单是&lt;div id="div2"&gt;
    • 上面的代码应该做你想做的事。虽然很明显这是不言而喻的,但你应该给你的 id 起一个比“div1”和“div2”更好的名字:)
    猜你喜欢
    • 2022-01-05
    • 2012-07-30
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多