簡體   English   中英

使用單點輸入PHP時定義$ _POST變量

[英]Defining $_POST variable when using single point entry PHP

我在PHP中構建了一個單點輸入控制器(所有路由都通過index.php)。 它工作得很好,但是我在用ajax調用設置$ _POST變量時遇到了問題。

我猜是因為ajax調用的URL是/ submit,而不是/index.php

$ url_page是瀏覽器URL中的頁面名稱。 這是在函數中處理的,我在此示例中省略了

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);
        }
  });

});

如果我正確理解您的方法,則無法將當前頁面用作AJAX處理器文件。 您需要一個單獨的PHP文件來處理AJAX,並將其返回給index.php。

在下面引用的源代碼中,請特別注意前綴為“嘗試此操作,您會明白我的意思”的示例-試試看。

資源:

ajax響應后未更新值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM