javascript - 在弹出窗口中显示来自表单的 json 数据结果

标签 javascript jquery html css json

我正在尝试在弹出窗口中显示从我的脚本返回的 json 数据,一旦弹出窗口打开,每个名称将成为弹出窗口中的一个链接,单击该链接将打开另一个页面代替父窗口,它也应该关闭父窗口。 我的代码获取了数据,但弹出窗口没有显示。这是我的代码示例。

CSS:

  .popup {
      width:100%;
      height:100%;
      display:none;
      position:fixed;
      top:0px;
      left:0px;
      background:rgba(0,0,0,0.75);
  }

  /* Inner */
  .popup-inner {
      max-width:700px;
      width:90%;
      padding:40px;
      position:absolute;
      top:50%;
      left:50%;
      -webkit-transform:translate(-50%, -50%);
      transform:translate(-50%, -50%);
      box-shadow:0px 2px 6px rgba(0,0,0,1);
      border-radius:3px;
      background:#fff;
  }

  .popup-close {
      width:30px;
      height:30px;
      padding-top:4px;
      display:inline-block;
      position:absolute;
      top:0px;
      right:0px;
      transition:ease 0.25s all;
      -webkit-transform:translate(50%, -50%);
      transform:translate(50%, -50%);
      border-radius:1000px;
      background:rgba(0,0,0,0.8);
      font-family:Arial, Sans-Serif;
      font-size:20px;
      text-align:center;
      line-height:100%;
      color:#fff;
  }

  .popup-close:hover {
      -webkit-transform:translate(50%, -50%) rotate(180deg);
      transform:translate(50%, -50%) rotate(180deg);
      background:rgba(0,0,0,1);
      text-decoration:none;
  }

JS:

$("document").ready(function(){

  $('#myForm').submit(function(e){

    e.preventDefault();
    var datastring = $("#myForm").serialize();

    $.ajax({

      type: "POST",
      dataType: "json",
      url: "get_json.pl",
      data: datastring,

      success: function(data) {

    var stable =
      '<div class="popup-inner">'+
      ' <h2>Results</h2>'+
          ' <div>'+

      $.each( data, function( key, value ) {
        stable+= '<p><a href="results_1.pl?name=' + value.name + '&gender=' + value.gender + ' "id="btnSend">Name: ' + value.name + '</a> | ' + 'Gender: ' + value.gender + '</p>';

    });

  stable += 
      ' </div>'+
          '<p><a data-popup-close="popup-1" href="#">Close</a></p>'+
          '<a class="popup-close" data-popup-close="popup-1" href="#">x</a>'+
      '</div>';

   var targeted_popup_class = jQuery(this).attr('data-popup-open');
   $('[data-popup="' + targeted_popup_class + '"]').fadeIn(350);
   e.preventDefault();

      $('[data-popup-close]').on('click', function(e)  {
        var targeted_popup_class = jQuery(this).attr('data-popup-close');
        $('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
        e.preventDefault();
      });


   },
   error: function() {
    alert('Error handing data');
   }

   });

});
});

HTML:

<form id="myForm">
  <input type="text" name="name" value="" placeholder="Search by Name" />
  <input type="submit" name="submit" value="Submit form" />
</form>


<div class="popup" data-popup="popup-1">
</div>

感谢您的关注!

最佳答案

当您想要 ; 时,该行似乎以 + 结尾

var stable =
  '<div class="popup-inner">'+
  ' <h2>Results</h2>'+
  ' <div>';

关于javascript - 在弹出窗口中显示来自表单的 json 数据结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46716376/

相关文章:

javascript - 如何更改 javascript 中发出的文本的大小和/或粗细?

javascript - 根据另一个 div 元素、Jquery、html 和 css 的值更改文本颜色?

jquery - Django AJAX - 建议

javascript - jQuery 用户界面 : Select menu does not close when clicking inside div of swiper plugin

c# - 将 Javascript 变量传递给 C# 函数 aspx 并从它返回到 aspx 页面

javascript - 没有任何内置函数的拆分字符串

jquery - 如何使用 CSS 展开 div 并向下/向上插入标题?

javascript - 根据屏幕位置更改 InnerHTML?

html - 可以用 float :right 堆叠 2 个侧边栏

javascript - 使用 onclick - jquery 在循环中按 ID 删除元素