Javascript 在页面更新后获取更改的数据
提交更新按钮时,将调用函数Javascript 在页面更新后获取更改的数据,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,提交更新按钮时,将调用函数edit\u page()。此函数使用输入的新数据更改数据库表行。 这可以很好地工作,正确地修改表格条目是可以的。 但问题是,当提交更新按钮时 1.已正确插入或更改数据库条目。 2.但当页面重新加载时,此更新页面的内容仍与前端更新之前或提交之后的内容相同。 我的代码: <?php function edit_page() { add_cat(); global $page_id; ?> <?php if (isset($_GET['page_ac
edit\u page()
。此函数使用输入的新数据更改数据库表行。这可以很好地工作,正确地修改表格条目是可以的。
但问题是,当提交更新按钮时
1.已正确插入或更改数据库条目。
2.但当页面重新加载时,此更新页面的内容仍与前端更新之前或提交之后的内容相同。
我的代码:
<?php
function edit_page()
{
add_cat();
global $page_id;
?>
<?php
if (isset($_GET['page_action']) && ($_GET['page_action'] == 'edit'))
{
$page_id = $_GET['post'];
}
?>
<?php
$page_id = $_GET['post'];
$result = mysql_query("SELECT * FROM pages WHERE page_id = '$page_id'"); //execute the SQL query and return records
$row = mysql_fetch_array($result);
$page_title = $row['page_title'];
$page_content = $row['page_content'];
?>
<form method="post" action="" name="edit_page" class="edit_page">
<h4>Page Title:</h4> <input type="text" name="title" class="title" placeholder="Add title of the Page" required value="<?php echo $page_title;?>"/><br/>
<h4>Page Content:</h4><br/>
<textarea cols="80" id="content" name="content" rows="10"><?php echo $page_content;?></textarea>
<input type="hidden" name="page_edits" value="yes" />
<input type="submit" name="edit_page" class="button" value="Update"/>
<?php
save_edits(); }
function save_edits()
{
if (isset($_POST['edit_page']) && $_POST['page_edits'])
{
$page_id = $_GET['post'];
$page_id = $_GET['post'];
$page_title = $_POST['title'];
$page_content = $_POST['content'];
$date = date('Y-m-d h:i');
$query = "UPDATE pages SET page_title='$page_title', page_content='$page_content', date_gmt='$date' WHERE page_id = '$page_id'";
$result = mysql_query($query) or die("Unable to create Page: " . mysql_error());
}
}
?>
<div class="right_sidebar">
<?php edit_page();?></div>
在这里,您正在以过程的方式进行PHP。这意味着语句会一个接一个地执行,所以问题在于您放置语句的方式
在您的代码中,您首先显示表单,然后才更新它,所以这就是为什么之前的值会被获取,尽管更新只在稍后发生
解决方案:函数save\u edits()
及其调用应首先调用edit\u page()。
另一个关于安全性的重要问题是,直接插入从地址栏获得的值。现在的情况是,有人可以在一张纸上写下你的整张桌子。您可以使用mysql\u real\u escape\u string()
来防止它(虽然不是完全),或者更好:
。它们不再得到维护。看到了吗?相反,学习,并使用,或-将帮助您决定哪一个。如果您选择PDO
最后,您没有关闭您的
标记。好的,我正在尝试在我的代码中关闭您的代码标记。实际上,我在这里只粘贴了所需的代码,其他我删除的代码,因此可能会在此处出现打字错误。我从未想过您的声明会起作用。谢谢@i Can have Kittenz,这是我的管理面板,而不是前端。稍后我将寻求实现您的其他建议。您应该在加载页面内容之前保存更改。