【发布时间】:2019-03-06 16:26:12
【问题描述】:
我在表单中有一个drpcategory 下拉菜单。我将在下面粘贴下拉代码;
<div class="form-group">
<label>Category</label>
<select class="form-control bg-dark btn-dark text-white" id="drpcategory" name="drpcategory" required>
<?php
$category = ''.$dir.'/template/post/category.txt';
$category = file($category, FILE_IGNORE_NEW_LINES);
foreach($category as $category)
{
echo "<option value='".$category."'>$category</option>";
}
?>
</select>
</div>
然后我每次在上面的drpcategory 下拉列表中进行选择时,我都会 AJAX post,如下所示;
<script>
$(function(){
$('#drpcategory').on('change',function()
{
$.ajax({
method: 'post',
data: $(this).serialize(),
success: function(result) {
console.log(result);
}
});
});
});
</script>
这似乎目前正在工作,因为我每次制作时都会在 Chrome 浏览器 > Inspect > Network 选项卡中获得如下输出drpcategory 中的一个选择。这是截图;
问题是我如何在同一页面中使用 PHP 捕获此 AJAX post 数据并在同一页面中捕获 echo 它?到目前为止,我已经尝试过;
<?php
if(isset($_POST['drpcategory']))
{
echo 'POST Received';
}
?>
我正在寻找仅结合使用 PHP、JQuery 和 AJAX 的解决方案。
这个问题后来在这里更新和回答: AJAX POST & PHP POST In Same Page
【问题讨论】:
-
您使用的是
$(this).attr('post'),我想这应该是$(this).attr('method'),因为它类似于<form action="..." method="POST">,而不是<form action="..." post="...">。如果您实际上是POST,您的数据应该在$_POST中(也可以使用网络选项卡验证这一点!) -
@ccKep:表单已经是
<form method="POST">,我已将AJAX 部分更改为$(this).attr('method'),现在它只是网络选项卡中的http://example.com/?page=post。 PHP 仍然没有回显任何内容。 -
能否请您在 ajax 调用上监控网络选项卡。
-
@Parvej Alam:已经做到了。不同情况下的所有network tab输出都贴在我的问答、cmets下面。
-
此问题已更新。可以的话请参考。