如何使javascript在php数据库查询后工作
how to make javascript works after php database query?
我的网站使用引导程序框架、javascript(jquery)和php。所以基本上我想按下一个按钮,通过按下它,我们查询数据库并返回结果,结果将显示在引导程序javascript驱动的模式中:因为弹出模式是用javascript编写的,它在php之后运行,所以$行总是显示为未定义。我想知道是否有一种方法可以让php在js之前运行?
<form action="" method="post">
<input type="text" id="field" name="field">
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal" name="submit" id="submit">
Launch demo modal
</button>
</form>
<?php
if(isset($_POST['submit'])){
$link = mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($link));
//consultation:
$query = "SELECT name FROM mytable" or die("Error in the consult.." . mysqli_error($link));
//execute the query.
$result = mysqli_query($link, $query);
//display information:
if ($row = mysqli_fetch_array($result)) {
?>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<?php echo $row["name"] . "<br>"; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
<?php
}
}
?>
最好将此数据请求分离为AJAX请求,然后在AJAX成功回调中打开模态。
示例:
ajax_handler.php:
if(isset($_POST['submit'])){
$link = mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($link));
//consultation:
$query = "SELECT name FROM mytable";
//execute the query.
$result = mysqli_query($link, $query);
$rows = mysqli_fetch_array($result);
//always wrap a response in an 'object' (associative array)
//more infor here: http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx/
echo json_encode(array('result' => $rows));
}
js代码:
$("#submit").on('click', function(){
$.post('ajax_handler.php', {submit: true}, function(data){
var data = JSON.parse(data), markup = '';
for(var i = 0; i < data.result.length; i++){
markup = markup + '<div>' + data.result[i] + '</div>';
}
$('myModal').modal('open');
$('.modal-body').append(markup)
});
});
标记:
<button class="btn btn-primary btn-lg" id="submit">
相关文章:
- JSON:查询联接表不工作(Cordova Mobile)
- 无法使我的文本参数与我的查询一起工作
- 如何正确创建带有“Url.Action”的查询字符串的网址,以便它在Firefox中工作
- 媒体查询打印无法通过 javascript 命令工作
- 忽略服务工作进程请求中的查询参数
- j查询事件已记录.它究竟是如何工作的
- j查询下拉菜单.页面标记无法正常工作 - 或者我想要它的方式
- j查询每个函数无法正常工作
- AJAX 查询工作 50+ 次,然后崩溃 JavaScript
- j查询同位素错误.停止在 Wordpress 中工作
- 通过输入键(不起作用)或搜索按钮(工作)查询结果
- j查询验证规则无法正常工作
- j查询延迟无法正常工作
- 提前输入.js:页脚查询如何工作
- @media查询以奇怪的方式工作
- 用于将值从复选框传递到查询字符串的 JavaScript 无法正常工作
- j查询轮播/图库无法正常工作
- 如何在使用新列升级表模式时使SELECT查询工作
- 不能让我的地理空间查询工作.在Node中查询Mongo
- PHP脚本不返回查询,但MySql查询工作