【问题标题】:Display JSON Data in a Bootstrap Modal - AJAX在引导模式中显示 JSON 数据 - AJAX
【发布时间】:2017-04-18 14:55:04
【问题描述】:

先生/女士您好,请问有关显示来自 PHP 到 Ajax 成功的 JSON 数据的帮助。

我的 JS 代码:

$(document).ready(function(){
    $('#btn-inquire-transmittal-number').click(function(){
        $inputtextval = $('#transmittal_number_inquiry').val();
        $.ajax({
            type : 'POST',
            url : 'getTransmittalNum.php', 
            data : {
                transmittal_number_inquiry : $inputtextval
            },
            dataType : 'json',
            success : function(res) {
                // Display Modal with JSON Data
            }
        });
    });
});

我的 PHP 代码:

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "etransmittal";

//$selectedTransmittal = $_GET['q'];
$con = mysqli_connect($servername,$username,$password,$dbname);

if(!$con){
    die("Connection failed: " . mysqli_connect_error());
}
if(isset($_POST['transmittal_number_inquiry'])){                        
    $query = "SELECT en.transid, en.transdate, CONCAT(userlist.lname, ', ', userlist.fname, ' ', userlist.mname) AS sender_name,
              userlist.`department`, en.document_number, en.`total_amount`,
              doctype.document_type, doctype.document_description, vendor.`vendor_name`, 
              en.`remarks`, en.status_id, stat.status_name 
              FROM tbl_encode_transmittal en
              LEFT JOIN tbl_vendor vendor ON vendor.`vendor_id` =  en.vendor_id
              LEFT JOIN tbl_doctype doctype ON doctype.`doc_id` = en.doctype_id
              LEFT JOIN tbl_userlist userlist ON userlist.userid = en.sender_id
              LEFT JOIN tbl_userlist userlist1 ON userlist1.userid = en.`receiver_id`
              LEFT JOIN tbl_status stat ON stat.status_id = en.status_id
              WHERE en.`transid` = '{$_POST['transmittal_number_inquiry']}'";

    $result = mysqli_query($con, $query);
    $rows = array();

    if($result){
        while($row = mysqli_fetch_assoc($result)){
            $rows[] = $row;
        }
    } else {
        echo 'MYSQL Error: ' . mysqli_error();
    }
    $json = json_encode($rows);
    echo $json;
    mysqli_close($con);
}

示例从 PHP 中获取数据(转换为 JSON):

[{
    "transid" : "33",
    "transdate" : "2016-01-28",
    "sender_name" : "Account, Admin LPHI",
    "department" : null,
    "document_number" : "9875",
    "total_amount" : "120000",
    "document_type" : "A.S.L.",
    "document_description" : "Account Subject for Liquidation",
    "vendor_name" : "LTS SUPERMARKETS, INC.",
    "remarks" : "CS#09321, PO#78974",
    "status_id" : "1",
    "status_name" : "Pending"
}]

我想在 ajax 成功的模态中显示这些数据。

我还在为此苦苦挣扎。你能帮我解决我的问题吗?

【问题讨论】:

  • 在 ajax 成功调用您的模型并从 ajax 响应您的响应
  • 在 ajax 成功中,res 已经是一个对象。根据您的数据,您可以像这样访问它res[0].transid等...
  • @SahilManchal 先生,该怎么做?

标签: javascript php jquery json ajax


【解决方案1】:

你可以这样做:

$('body').append(
'<div id="myModal" class="modal fade" role="dialog">'+
'  <div class="modal-dialog">'+
'    <div class="modal-content">'+
'      <div class="modal-header">'+
'        <button type="button" class="close" data-dismiss="modal">&times;</button>'+
'        <h4 class="modal-title">Response Data</h4>'+
'      </div>'+
'      <div class="modal-body">'+
'        <p>'+
'transID: '+res[0].transid+ ', '+
'transdate: '+res[0].transdate+     ', '+
'sender_name: '+res[0].sender_name+     ', '+
//all fields here
'</p>'+
'      </div>'+
'      <div class="modal-footer">'+
'        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>'+
'      </div>'+
'    </div>'+
'  </div>'+
'</div>');
$('#myModal').modal('show');

你必须通过$('#myModal').modal('show');显示模态我已经添加了sn-p来检查。

$(document).ready(function() {
  $('#check').click(function() {
    $.ajax({
      type: 'GET',
      url: 'https://api.github.com/users/sohaib/repos',
      data: {},
      dataType: 'json',
      success: function(res) {
        $('#asd').append(
          '<div id="myModal" class="modal fade" role="dialog">' +
          '  <div class="modal-dialog">' +
          '    <div class="modal-content">' +
          '      <div class="modal-header">' +
          '        <button type="button" class="close" data-dismiss="modal">&times;</button>' +
          '        <h4 class="modal-title">Response Data</h4>' +
          '      </div>' +
          '      <div class="modal-body">' +
          '        <p>' +
          'transID: ' + res[0].id + ', ' +
          'transdate: ' + res[0].name + ', ' +
          //all fields here
          '</p>' +
          '      </div>' +
          '      <div class="modal-footer">' +
          '        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>' +
          '      </div>' +
          '    </div>' +
          '  </div>' +
          '</div>');

// $('#myModal').modal('show');  this  should be 


$('body').find('#myModal').modal('show'); 
        
      }
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<div id="asd">
  <button id="check">
    Test
  </button>
</div>

【讨论】:

  • 您的代码对我不起作用。它不会出现您创建的模式。有没有可能的解决方案?
  • @pvegetah 我已经编辑了代码。请检查这是否适合您。
  • 我的萤火虫出现错误,请参见图片。以下。 i.stack.imgur.com/rsXGJ.jpg 这是我的代码链接:gist.github.com/pvegetah/0249e27447a6b3451c6e 显示模式的按钮触发器在第 158 行,我查看引导模式的 ajax 脚本在第 184 行。
  • 我已经集成了您的代码,而不是在模态正文中使用段落我使用了一个表格。但我不适合我..
  • 很抱歉,它对您不起作用。请分享您的最新代码,以便我们找出问题所在。
猜你喜欢
  • 1970-01-01
  • 2015-12-22
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2017-10-03
  • 2015-09-25
  • 2014-08-08
相关资源
最近更新 更多