Javascript 当单击提交按钮时,是否在PHP中临时更改同一页面上的HTML结构?

Javascript 当单击提交按钮时,是否在PHP中临时更改同一页面上的HTML结构?,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个PHP页面,有提交按钮到另一个URL 我想在单击submit按钮后重新加载当前页面,并将div添加到HTML中 我的页面url是:/foo.php,在HTML中我有: <button onclick="$.get('/bar', function() { ... })">Submit</button> 我的问题是,我怎么知道用户点击按钮,刷新是因为点击,而不仅仅是导航 另一件事,如果可能的话,我希望如果用户再次刷新页面,新的div将消失。为什么不将div追加到g

我有一个PHP页面,有提交按钮到另一个URL

我想在单击submit按钮后重新加载当前页面,并将
div
添加到HTML中

我的页面url是:
/foo.php
,在HTML中我有:

<button onclick="$.get('/bar', function() { ... })">Submit</button>
我的问题是,我怎么知道用户点击按钮,刷新是因为点击,而不仅仅是导航


另一件事,如果可能的话,我希望如果用户再次刷新页面,新的
div
将消失。

为什么不将div追加到get函数的成功回调中呢?您不必重新加载页面

<div id="btn_area">
    <button onclick="$.get('/bar', function() { $('#btn_area').append($('<div>').html('Thank You');)})">Submit</button>
</div>

提交
顺便说一下,我几乎不建议将javascript与html分开,也不建议将其直接放在DOM中

另一种方法是,在同一侧激发另一个带有隐藏参数的窗体。然后,在服务器端检查隐藏参数并显示div

第三种方法是,在回调中设置cookie,重新加载side,检查cookie,显示div,然后再次删除cookie


在我看来,第一个提到的选项(直接在回调中添加div而不重新加载)将是目前为止最“漂亮”的选项,但当然我不知道在您的站点上还有什么其他的情况

为什么不在get函数的成功回调中添加div呢?您不必重新加载页面

<div id="btn_area">
    <button onclick="$.get('/bar', function() { $('#btn_area').append($('<div>').html('Thank You');)})">Submit</button>
</div>

提交
顺便说一下,我几乎不建议将javascript与html分开,也不建议将其直接放在DOM中

另一种方法是,在同一侧激发另一个带有隐藏参数的窗体。然后,在服务器端检查隐藏参数并显示div

第三种方法是,在回调中设置cookie,重新加载side,检查cookie,显示div,然后再次删除cookie


在我看来,第一个提到的选项(直接在回调中添加div而不重新加载)将是目前为止最“漂亮”的选项,但当然我不知道在您的站点上还有什么其他的情况

为什么不在get函数的成功回调中添加div呢?您不必重新加载页面

<div id="btn_area">
    <button onclick="$.get('/bar', function() { $('#btn_area').append($('<div>').html('Thank You');)})">Submit</button>
</div>

提交
顺便说一下,我几乎不建议将javascript与html分开,也不建议将其直接放在DOM中

另一种方法是,在同一侧激发另一个带有隐藏参数的窗体。然后,在服务器端检查隐藏参数并显示div

第三种方法是,在回调中设置cookie,重新加载side,检查cookie,显示div,然后再次删除cookie


在我看来,第一个提到的选项(直接在回调中添加div而不重新加载)将是目前为止最“漂亮”的选项,但当然我不知道在您的站点上还有什么其他的情况

为什么不在get函数的成功回调中添加div呢?您不必重新加载页面

<div id="btn_area">
    <button onclick="$.get('/bar', function() { $('#btn_area').append($('<div>').html('Thank You');)})">Submit</button>
</div>

提交
顺便说一下,我几乎不建议将javascript与html分开,也不建议将其直接放在DOM中

另一种方法是,在同一侧激发另一个带有隐藏参数的窗体。然后,在服务器端检查隐藏参数并显示div

第三种方法是,在回调中设置cookie,重新加载side,检查cookie,显示div,然后再次删除cookie

在我看来,第一个提到的选项(直接在回调中添加div而不重新加载)将是目前为止最“漂亮”的选项,但当然我不知道您的站点上还有什么其他情况

您可以在js端处理这个问题。只要发出请求,在回调中,就可以操纵dom。你可以看到下面

<button>Submit</button>

$("button").on("click", function() {
   var $button = $(this);
   $.get("/echo/html", function() {
       $button.after("<div>Thank you!</div>");
   });
});
提交
$(“按钮”)。在(“单击”,函数(){
var$按钮=$(此按钮);
$.get(“/echo/html”,函数(){
$button.after(“谢谢!”);
});
});

您可以在js端处理这个问题。只要发出请求,在回调中,就可以操纵dom。你可以看到下面

<button>Submit</button>

$("button").on("click", function() {
   var $button = $(this);
   $.get("/echo/html", function() {
       $button.after("<div>Thank you!</div>");
   });
});
提交
$(“按钮”)。在(“单击”,函数(){
var$按钮=$(此按钮);
$.get(“/echo/html”,函数(){
$button.after(“谢谢!”);
});
});

您可以在js端处理这个问题。只要发出请求,在回调中,就可以操纵dom。你可以看到下面

<button>Submit</button>

$("button").on("click", function() {
   var $button = $(this);
   $.get("/echo/html", function() {
       $button.after("<div>Thank you!</div>");
   });
});
提交
$(“按钮”)。在(“单击”,函数(){
var$按钮=$(此按钮);
$.get(“/echo/html”,函数(){
$button.after(“谢谢!”);
});
});

您可以在js端处理这个问题。只要发出请求,在回调中,就可以操纵dom。你可以看到下面

<button>Submit</button>

$("button").on("click", function() {
   var $button = $(this);
   $.get("/echo/html", function() {
       $button.after("<div>Thank you!</div>");
   });
});
提交
$(“按钮”)。在(“单击”,函数(){
var$按钮=$(此按钮);
$.get(“/echo/html”,函数(){
$button.after(“谢谢!”);
});
});

或者,如果您选择在PHP中模拟flash会话(一次性使用会话)。考虑这个例子:

foo.php

<?php session_start(); ?>

<form method="POST" action="bar.php">
    <button type="submit" name="thank_you">Submit</button>
</form>
<?php if(isset($_SESSION['thank_you'])): ?>
<?php unset($_SESSION['thank_you']); ?>
    <h1>Thank You!</h1>
<?php endif; ?>
<?php
session_start();

if(isset($_POST['thank_you'])) {
    $_SESSION['thank_you'] = true;
    // processes
    header('Location: foo.php');
}

?>

提交
非常感谢。
bar.php

<?php session_start(); ?>

<form method="POST" action="bar.php">
    <button type="submit" name="thank_you">Submit</button>
</form>
<?php if(isset($_SESSION['thank_you'])): ?>
<?php unset($_SESSION['thank_you']); ?>
    <h1>Thank You!</h1>
<?php endif; ?>
<?php
session_start();

if(isset($_POST['thank_you'])) {
    $_SESSION['thank_you'] = true;
    // processes
    header('Location: foo.php');
}

?>

或者,如果您选择在PHP中模拟flash会话(一次性使用会话)。考虑这个例子:

foo.php

<?php session_start(); ?>

<form method="POST" action="bar.php">
    <button type="submit" name="thank_you">Submit</button>
</form>
<?php if(isset($_SESSION['thank_you'])): ?>
<?php unset($_SESSION['thank_you']); ?>
    <h1>Thank You!</h1>
<?php endif; ?>
<?php
session_start();

if(isset($_POST['thank_you'])) {
    $_SESSION['thank_you'] = true;
    // processes
    header('Location: foo.php');
}

?>

提交
非常感谢。
bar.php

<?php session_start(); ?>

<form method="POST" action="bar.php">
    <button type="submit" name="thank_you">Submit</button>
</form>
<?php if(isset($_SESSION['thank_you'])): ?>
<?php unset($_SESSION['thank_you']); ?>
    <h1>Thank You!</h1>
<?php endif; ?>
<?php
session_start();

if(isset($_POST['thank_you'])) {
    $_SESSION['thank_you'] = true;
    // processes
    header('Location: foo.php');
}

?>

或者,如果您选择在PHP中模拟flash会话(一次性使用会话)。考虑这个例子:

foo.php

<?php session_start(); ?>

<form method="POST" action="bar.php">
    <button type="submit" name="thank_you">Submit</button>
</form>
<?php if(isset($_SESSION['thank_you'])): ?>
<?php unset($_SESSION['thank_you']); ?>
    <h1>Thank You!</h1>
<?php endif; ?>
<?php
session_start();

if(isset($_POST['thank_you'])) {
    $_SESSION['thank_you'] = true;
    // processes
    header('Location: foo.php');
}

?>

提交
非常感谢。
bar.php

<?php session_start(); ?>

<form method="POST" action="bar.php">
    <button type="submit" name="thank_you">Submit</button>
</form>
<?php if(isset($_SESSION['thank_you'])): ?>
<?php unset($_SESSION['thank_you']); ?>
    <h1>Thank You!</h1>
<?php endif; ?>
<?php
session_start();

if(isset($_POST['thank_you'])) {
    $_SESSION['thank_you'] = true;
    // processes
    header('Location: foo.php');
}

?>

或者,如果您选择在PHP中模拟flash会话(一次性使用会话)。考虑这个例子:

foo.php

<?php session_start(); ?>

<form method="POST" action="bar.php">
    <button type="submit" name="thank_you">Submit</button>
</form>
<?php if(isset($_SESSION['thank_you'])): ?>
<?php unset($_SESSION['thank_you']); ?>
    <h1>Thank You!</h1>
<?php endif; ?>
<?php
session_start();

if(isset($_POST['thank_you'])) {
    $_SESSION['thank_you'] = true;
    // processes
    header('Location: foo.php');
}

?>

提交
非常感谢。
bar.php

<?php session_start(); ?>

<form method="POST" action="bar.php">
    <button type="submit" name="thank_you">Submit</button>
</form>
<?php if(isset($_SESSION['thank_you'])): ?>
<?php unset($_SESSION['thank_you']); ?>
    <h1>Thank You!</h1>
<?php endif; ?>
<?php
session_start();

if(isset($_POST['thank_you'])) {
    $_SESSION['thank_you'] = true;
    // processes
    header('Location: foo.php');
}

?>