表单未提交到PHP操作
我有以下smarty tpl表格:表单未提交到PHP操作,php,forms,Php,Forms,我有以下smarty tpl表格: <form name="new_element" action="layout.php?action=newElement&pageId={$data.page.id}" method="POST"> <input type="text" name="name" /> <input type="submit" name="submit" /> </form> layout.php操作
<form name="new_element" action="layout.php?action=newElement&pageId={$data.page.id}" method="POST">
<input type="text" name="name" />
<input type="submit" name="submit" />
</form>
layout.php操作如下所示:
<?php
require_once('../initialize.php');
$pages = new Smalllight($pdo, 'pages');
$elements = new Smalllight($pdo, 'elements');
$status = new Smalllight($pdo, 'status');
$users = new SmalllightUsers($pdo, 'users');
$profiles = new Smalllight($pdo, 'profiles');
if($users->isLoggedIn() || $users->isRemember()) {
//set user_id
if(isset($_SESSION['user_id'])) { $user_id = $_SESSION['user_id']; }
elseif(isset($_COOKIE['user_id'])) { $user_id = $_COOKIE['user_id']; }
//reset Token
if($users->isRemember()) { $users->resetToken($user_id, $settings['cookie_expire']); }
//check if user is admin
if($users->isAdmin()) {
$data['admin'] = true;
//find all statuses
$getStatus = $status->findAll();
if($getStatus == true) {
foreach($getStatus as $status)
{ $data['status'][$status['id']] = $status; }
}
//-------------------//
//----- ACTIONS -----//
//-------------------//
//----- VIEW LAYOUT -----\\
if($_GET['action'] = 'viewLayout') {
//find page
$getPage = $pages->findById($_GET['pageId']);
if($getPage == true) {
$data['page'] = $getPage;
//find page elements
$pageElements = $elements->findByFieldValue('page_id', $_GET['pageId']);
if($pageElements == true) {
$data['pageElements'] = $pageElements;
}
//find page elements with tree structure
$getElements = $elements->findTree(array('page_id' => $_GET['pageId']), null, array('position' => 'asc'));
if($getElements == true) {
$data['elements'] = $getElements;
}
}
//assign objects
$smarty->assign('elements', $elements);
//assign data and display
$smarty->assign('data', $data);
$smarty->assign('page', 'layout');
$smarty->display('../themes/admin/layout.tpl');
}
echo '<pre>'; print_r($_POST); exit;
//----- NEW ELEMENT ----\\
if($_GET['action'] == 'newElement') {
echo '<pre>'; print_r($_POST); exit;
$elementCount = $elements->countByFieldValue('parent_id', $_POST['parent']);
if($_POST['name'] != NULL) {
$elements->setValue('name', $_POST['name']);
$elements->setValue('type', $_POST['type']);
$elements->setValue('class', $_POST['class']);
$elements->setValue('style', $_POST['style']);
$elements->setValue('content', $_POST['content']);
$elements->setValue('parent_id', $parentId);
$elements->setValue('page_id', $_GET['pageId']);
$elements->setValue('status_id', $_POST['status']);
$elements->setValue('position', $elementCount++);
$elements->store();
}
header('Location: '.$settings['site_url'].'admin/layout.php?action=viewLayout&pageId='.$_GET['pageId']); exit;
}
}
else { header('Location: '.$settings['site_url'].'index.php'); exit; }
}
else { header('Location: '.$settings['site_url'].'index.php'); exit; }
?>
如您所见,我设置了echo';打印(邮政美元);退出
作为操作的第一行,但是当我提交表单时,它只需要我去表单必须去的地方(这里是layout.php?action=newElement&pageId=328),什么也不做
我有另一个名为pages.php的文件,它的功能与此完全相同。尝试
var\u dump()
而不是print\u r()
不,它仍然无法访问php内部的操作。我可以提供整个脚本,但我认为没有必要。请尝试放置回显以查看代码流达到了什么程度。它可能会被先前的声明阻止。如果它到达了那里,那么出于某种原因,$\u GET['action']!='newElement'您可以尝试输出$GET['action']的值,并查看它在if语句之前是什么;打印(邮政美元);退出代码>在动作上方,它会相应地显示$\u POST数组,我会更新上面的脚本,这样您就可以完整地看到它了。$\u GET['action']的值是多少?