【发布时间】:2017-06-26 14:47:00
【问题描述】:
我有一个 jquery 模态按钮,我想在其中显示来自我的数据库的信息。
我在数据库中有一个字段,我希望通过它识别所有内容,称为“数字” 模态按钮显示在一个表中,该表已经从显示所有条目的 SQL 查询中循环
while ($row = getarray($res)){
<tbody>
<tr>
<td> <? $row["state"] ?> </td>
<td><? $row["number"] ?></td>
<td>
<button type="button" class="btn btn-primary" onclick="detailsmodal(<?
$row["number"])">Description</button>
</td>
</tr>
<!-- Modal Button -->
<button type ="button" class="btn btn-primary" onclick="detailsmodal(<?= $row['number']; ?>)>Modal Button</button>
<!-- Code for modal -->
<?php
$number =$_POST["number"];
$number =(int)$number;
$modalsql = myquery($dbvariable,"SELECT * FROM myTable WHERE Number = '$number' ");
$result2 = myfunction_fetch_array($modalsql);
ob_start();
?>
<div class="modal fade" id="myModal" data-keyboard="false" data-backdrop="static" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" onclick="closeModal()" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title"> <?= $result2['number']?></h4>
</div>
<div class="modal-body">
<p><strong>Field 1:</strong><?= $result2['number']?> </p>
<p><strong>Field 2:</strong><?= $result2['field_2']?> </p>
<p><strong>Field 3</strong><?= $result2['field_3']?> </p>
<p><strong>Field 4:</strong><?= $result2['field_4']?> </p>
<p><strong>Field 5:</strong><?= $result2['field_5']?></p>
<p><strong>Field 6:</strong><?= $result2['field_6']?> </p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="closeModal()">Close</button>
</div>
</div>
</div>
</div>
<?php
ob_get_clean();
?>
<!-- Script for the modal-->
<script>
function detailsmodal(number){
var data = {"number" : number};
jQuery.ajax({
url : "/page1/page2",
method : "post",
data : data,
success: function(){
jQuery("body").append(data);
jQuery("#myModal").modal("toggle");
},
error: function(){
alert("Something went wrong!");
}
});
}
</script>
理想情况下,信息应该根据被点击的不同项目而改变。但它保持不变。
【问题讨论】:
-
ajax 是我提交的代码的最后一部分。而且无论我在表中单击哪个按钮,我都会得到它从数据库中提取的第一个条目
-
调试的时候,具体是哪里出现的问题?这里生成的客户端代码是什么?在浏览器的调试工具中,当您检查网络请求时,AJAX 请求是否具有您期望的数据?在这些相同的工具中调试 JavaScript 时,
number的值是多少?它是您期望的值吗? AJAX 请求调用的 PHP 代码是什么?它返回什么作为响应?您可以在这里进行很多的调试。 -
问题出在您发布的代码的第一行。您将在 php 中使用
$row['number'];计算的“数字”传递给函数detailsmodal。你总是传递相同的数字,所以你总是会得到相同的结果。 -
我编辑了我的代码,我有一个变量循环通过数据库结果并动态创建表。所有条目都有不同的编号。
-
@jumpman8947:您的编辑显示代码中有错字。您打开一个 PHP 短标签
<?(它可能会在您的 PHP 配置中启用,也可能不会启用),但您永远不会关闭它。在该标签中,您实际上不会输出任何内容。您是否错过了输出的=以及结束标记?您还需要检查生成的客户端代码以查看0值的来源。那是首先发送到页面的内容吗?如果是这样,那么所有客户端代码都与问题无关。
标签: javascript php jquery sql ajax