我在表单中有一个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>
然后,每次我在下面的post
下拉列表中进行选择时,我都会AJAX drpcategory
;
<script>
$(function(){
$('#drpcategory').on('change',function()
{
$.ajax({
method: 'post',
data: $(this).serialize(),
success: function(result) {
console.log(result);
}
});
});
});
</script>
这似乎正在起作用,因为每次我进行以下操作时,我都会在 Chrome 浏览器> 检查> 网络标签中获得如下所示的输出drpcategory
中的选择。这是屏幕截图;
问题是如何在同一页面中使用PHP捕获post
并在同一页面中使用PHP捕获此AJAX数据?到目前为止,我已经尝试过了;
echo
我正在寻找仅结合使用PHP,JQuery和AJAX的解决方案。
此问题后来得到更新,并在此处回答: AJAX POST & PHP POST In Same Page
答案 0 :(得分:1)
首先,此行-> 类型:$(this).attr('post')应为 type:$(this).attr('method'), 。因此,这将得到值** type:post **和
据我了解,每当您从 drpcategory 中选择选项时,您都要求发送Ajax。您为什么要为此提交整个表格。如果我在你那里,我应该按照以下方式解决这个问题
$("#drpcategory").change(function(){
e.preventDefault();
var drpcategory=$(this).val();
$.ajax({
type: 'post',
data: drpcategory,
success: function(result) {
console.log(result);
}
});
});
在您的php端,您可以获取数据,
echo $_POST['drpcategory'];
答案 1 :(得分:0)
我建议您阅读有关ajax函数的文档,我试图对其进行复制,并且必须解决此问题:
$.ajax({
// If you don't set the url
// the request will be a GET to the same page
url: 'YOU_URL',
method: 'POST', // I replaced type by method
data: $(this).serialize(),
success: function(result) {
console.log(result);
}
});
答案 2 :(得分:0)
请尝试以下代码:
$.post('URL', $("#FORM_ID").serialize(), function (data)
{
alert('df);
}
答案 3 :(得分:0)
First change to $value
<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';
$category2 = file($category, FILE_IGNORE_NEW_LINES);
foreach($category2 as $value)
{
echo "<option value='".$value."'>".$value."</option>";
}
?>
</select>
然后添加网址
<script>
$(function()
{
$('#form').submit(function(e)
{
e.preventDefault();
$.ajax({
url:'folder/filename.php',
type: 'post',
data: '{ID:" . $Row[0] . "}',
success: function(result) {
console.log(result);
}
});
});
$('#drpcategory').on('change',function()
{
$("#form").submit();
});
});
尝试请求
if(isset($_REQUEST['ID']))
结果将/应该发送回同一页面
答案 4 :(得分:0)
我认为您在ajax jQuery请求中有一个错误语法错误,因为ajax发布'http://example.com/?page=post&drpcategory=Vehicles'不会在浏览器的“网络”标签中返回此类型的url。
<?php var_dump($_POST); exit; ?> please do this statment in your php function if anything posted to php page it will dump.
这里是ajax请求示例
$("#drpcategory").change(function(){
e.preventDefault();
var drpcategory = $(this).val();
$.ajax({
type:'post',
数据:drpcategory,
成功:函数(结果){
console.log(result);
}
});
});
`