[英]Ajax and PHP debug
构建一个脚本,一旦在datepicker日历中选择了日期,它就会使用ajax在php脚本中发布所选日期;
在ajax调用的成功中,它使用另一个ajax调用将相同的选定日期发布到另一个php脚本并在页面中显示。
做了一些研究,这似乎是我尝试做的最好的解决方案。
该脚本如下:
<script> //for the events
jQuery(function($) {
$(".date").datepicker({
onSelect: function(dateText) {
display("Selected date: " + dateText + "; input's current value: " + this.value);
$(this).change();
}
}).on("change", function() {
display("Got change event from field");
// call next ajax function
var mydate = this.value;
$.ajax({
type: "POST",
url: 'boxes_script.php',
data: ({dates: mydate}),
dataType : 'html',
success: function(data) {
$('.caixas').html(data);
alert(data);
$.ajax({
type: "POST",
url: 'events_script.php',
data: ({dates1: mydate}),
dataType : 'html',
success: function(data) {
$('.results-ajax').html(data);
alert(data);
}
});
}
});
});
function display(msg) {
$("<p>").html(msg).appendTo(document.body);
}
});
</script>
这是atm使用的代码。 得到一些更新,因为这里给出的反馈,但解决方案仍然没有100%工作
它有一个问题,我认为这是因为第二个Ajax调用是成功的Ajax。
问题如下 :数据是在php脚本中发布的,它们的运行方式与应该如何运行一样。 数组将填充正确的信息。 该
$(”。caixas')HTML(数据)。
工作正常并显示'boxes_script.php'中的数据。
该
$( '结果的AJAX。')HTML(数据)。
接收从'events_script.php'发送的100%数据,但由于任何奇怪的原因,不会将其附加到页面..
我可以在警报消息中看到数据,它是发送到浏览器的正确数据。
为什么不将数据附加到页面?
这是'events_script.php'的php代码:
<?php
include 'config/config.php';
include 'libraries/database.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
print_r($_POST);
echo $_POST[dates1];
$dias= $_POST[dates1];
$mysql_date = date('Y-m-d', strtotime($dias));
echo $mysql_date;
//Make database query
$sql = "***";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$image = $row['Company_Logo'];
$myArray = json_decode($image, true);
$event=$row['eventID'];
echo '<div class="tab-pane" role="tabpanel">
<div id="'.$dias.'" class="container day-events">
<div class="row event-list">
<div class="event-list-time col-md-3 col-sm-3 center" style="background-image:url('.$myImage = $myArray[0]['name'].');">
<p class="event-list-start-time">'.$row['Start_Date'].'</p>
<hr class="event-list-time-divider">
<p class="event-list-end-time">'.$row['End_Date'].'</p>
</div>
<div class="event-list-info col-md-9 col-sm-9">
<h2 class="event-list-name">'.$row['Event_Name'].'</h2>
<p>Organized by <span class="event-list-organizer"><a href="mini-about.php?$company='.$row['Ref_ID'].'">'.$row['Company_Name'].'</a></span></p>
<p class="event-list-description">'.$row['Event_Description'].'</p>
<a href="mini-single-event.php?event='.$event.'"><button type="button" class="btn more-info-list">More Information</button></a>
</div>
</div>
</div>
</div>';
}} else { echo 'No results found.'; }
}
?>
注意:错误日志中未发现任何错误。 网络给出状态200。
可以看到数据发送到浏览器:
正如您在图像中看到的那样,数据的第一部分将附加到浏览器中。
为什么不工作呢?
更改
data1: ({dates1: this.value})
至
data: ({dates1: this.value})
var mydate = this.value; // add before the 1st ajax call
改变 -
data1: ({dates1: mydate})
这就解决了问题,并得出以下最终结果:
旧:
<div class="row events-tabs">
<div class="container" data-example-id="togglable-tabs">
<ul class="nav nav-pills center caixas" id="myTabs" role="tablist">
</ul>
<div class="results-ajax tab-content" id="myTabContent">
</div>
</div>
</div>
新:
<div class="row events-tabs">
<div class="container" data-example-id="togglable-tabs">
<ul class="nav nav-pills center caixas" id="myTabs" role="tablist">
</ul>
<div class="tab-content" id="myTabContent">
<div class="results-ajax"></div>
</div>
</div>
</div>
所以,基本上使用结果-ajax作为自己的div的类修复了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.