使用单点条目PHP时定义$ _POST变量

时间:2015-06-14 14:51:03

标签: php jquery ajax post

我在PHP中构建了一个单点入口控制器(通过index.php进行所有路由)。它工作得很好但是我在使用ajax调用设置$ _POST变量时遇到了问题。

我猜是因为ajax调用的url是/ submit而不是/index.php

$ url_page是浏览器网址的页面名称。这是handeld在一个函数中,我忽略了这个例子

switch($url_page)
{
case '':
  echo 'When login works this will redirect you to to correct page';
break;

case 'admin':
    $template_page->set_values('URL', URL);
    $template_page->set_values('PATH', PATH);
    $template_page->set_values('NAVIGATION', '');
    $template_page->set_values('SIDENAVIGATION', '');
    $template_page->pageContet('admin.html');
    echo $template_page->build_template();
break;      

case 'student':
    $template_page->set_values('URL', URL);
    $template_page->set_values('PATH', PATH);
    $template_page->set_values('INCJS', URL.'/assets/js/studentjs.js');
    $template_page->set_values('NAVIGATION', file_get_contents(TEMPLATES.'/studentNav.html'));
    $template_page->set_values('SIDENAVIGATION', file_get_contents(TEMPLATES.'/userSideNav.html'));
    $template_page->pageContet('students.html');
        echo $template_page->build_template();
break;

case 'submit':

 cannot access $_POST here

break;

default:
    header('Location:'.URL.'/404.html') ;      
    break;
}

这是Ajax

$('.navicagtionClass > li > a').click(function() { 
var page = $(this).attr('value');
var obj = {};
obj['page'] = page;

$.ajax({
        url: "/submit",
        type: "POST",
        data: obj,
        dataType: "json",
        success: function(data) {
            console.log(data);
          document.getElementById('PageContent').innerHTML = data.a;
        },
        error: function(xhr, status, err) {
          console.log(err);
        }
  });

});

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的方法,则无法使用您所在的页面作为AJAX处理器文件。您需要一个单独的PHP文件来处理AJAX并将其返回到index.php。

在下面引用的来源中,请特别注意前缀为 的示例“试试这个,你会看到我的意思” - 试一试。

来源:

values not updated after an ajax response