AJAX将选定的日期((‘articleDate’))发送到PHP文档,然后在sql语句中使用它,但是,当我运行PHP时,在声明的行上,代码中出现未定义的错误:
$date = $_POST['articleDate'];
这意味着该值未发布到PHP.
我已经检查了代码,它在语义上似乎运行良好.是否有单独的方法在AJAX中发布“日期”值?
当不使用AJAX且表单通过方法(带有“提交”按钮的提示)进行发布时,PHP代码将起作用.
HTML< body>码:
<div id="wrapper"> <!--wrapper start-->
<!--include navbar-->
<?PHP include 'include/navbar.PHP';?>
<div class="container" id="content"><!--container start-->
<div class="jumbotron"><!--jumbotron start-->
<div class="col-xs-12">
<div class="row" id="date">
<form>
<input class="form-control" type="date" id="articleDate" onchange="viewArticle(this.value)">
</form>
</div>
</div>
<div class="row">
<div id="article">
</div>
</div> <!--Row end-->
</div><!--Jumbotron End-->
<?PHP require 'include/footer.PHP';?>
</div> <!--container end-->
Java脚本
window.onload=function(){
document.getElementById("articleDate").value="";
}
function viewArticle()
{
$.ajax({
type: "POST",
url: "../pages/include/viewArticle.PHP",
data: {
Date: document.getElementById("articleDate").value
},
success: function (response) {
document.getElementById("article").innerHTML=response;
},
error: function(xhr, status, error) {
alert('article not sent');
},
});
}
#Get date
$date = $_POST['articleDate'];
$stmt = $conn->prepare("SELECT * FROM Article WHERE articleDate=? ORDER BY articleDate desc");
$stmt->bind_param("s", $date);
if($date !== "")
{
if($stmt->execute()){
$data = $stmt->get_result();
#Check number of rows statement selects
if($data->num_rows > 0)
{
#print data
while($row = $data->fetch_assoc()){
#create div
echo ' <div class="col-lg-4 col-md-6 col-sm-6 col-xs-12" id="articleDiv">';
echo "<img class='img-responsive' id='articleImage' src=".$row['articleThumbnail'].">";
echo '<h3><a href="article.PHP?id='.$row['articleId'].'">'.$row['articleHeadline'].'</a></h3>';
echo '<p>',$row['articleSummary']," ",'</p>';
echo '<div class="row" id="rowDetails">';
echo '<p>' , $row['articleDate']," | " , $row['articletopic'],'</p>';
echo '</div>';
echo '</div>';
}
}
else
{
echo "<p>No articles exist on this date</p>";
}
}
#$stmt->close();
#$conn->close();
}
else{
echo "Date not working";
}
未定义的变量= $date
解决方法:
在PHP中,您可以通过名称articleDate获得发布的参数:
$_POST['articleDate']
当您发送日期时.
您有两种选择:
>您可以像这样在JS中更改参数名称:
data: {
articleDate: document.getElementById("articleDate").value
},
$_POST['Date']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。