接受/拒绝/提交按钮

时间:2016-03-08 22:56:52

标签: php html

我创建了一个免责声明页面,其中包含“接受/拒绝”按钮和“提交”按钮。我希望这样当有人选择接受然后提交它时会转到特定的URL1。但如果他们选择拒绝,则转到URL2。所有代码都在下面。目前的问题是,当我选择接受或拒绝然后点击提交时,它没有做任何事情。

<!DOCTYPE html>
<html>
<head>
    <title>Warning Page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<?php
session_start();

if (isset($_POST['Accept'])) {
    if ($_POST['Accept'] == 'Accept') {
        $_SESSION['did_accept'] = true;
        header ('Location: http://www.google.com');
        die('<a href="http://www.google.com">Click here to continue</a>');
    } else {
        header ('Location: http://www.yahoo.com');
        die('<a href="http://www.yahoo.com">Click here to continue</a>');
    }
}
?>

</head>
<body>
    <p>Some text</p>

    <label>
        <input type="radio" name="radio" value="Accept" id="Accept" onClick="Accept()">
    Accept</label>
    <br>
    <label>
        <input type="radio" name="radio" value="Decline" id="Decline" onClick="Decline()">
    Decline</label>
    <br>
    <input type="submit" value="Submit">

</body>
</html>

4 个答案:

答案 0 :(得分:0)

要将单选按钮放在一个组中,您必须为它们指定相同的名称。

<label>
<input type="radio" name="Accept" value="Accept" id="Accept">
Accept</label>
<br>
<label>
<input type="radio" name="Accept" value="Decline" id="Decline">
Decline</label>
<br>
<input type="submit" value="Submit">

您在按钮的formaction中不需要任何内容​​。只需将其设为type="submit",它就会在表单的action属性中提交给PHP脚本,该脚本应该是您在顶部显示的脚本。

答案 1 :(得分:0)

我修改了我的答案以提供更好的例子。这是未经测试的,但应该让你知道它是如何工作的。

diceList = sorted(diceList)
elif letterChoice == "J" and diceCombinations[9] == False:
    diceList = list(set(diceList))
    print (diceList)
    if diceList in [[1,2,3,4], [2,3,4,5], [3,4,5,6]]:
        score = score + 30
        diceCombinations[9] = True

答案 2 :(得分:0)

您的问题在这里:

if (isset($_POST['Accept']) && $_POST['Accept'] == 'Accept') {
    $_SESSION['did_accept'] = true;
    header ('Location: http://www.google.com');
    die('<a href="http://www.google.com">Click here to continue</a>');
} else {
    header ('Location: http://www.yahoo.com');
    die('<a href="http://www.yahoo.com">Click here to continue</a>');
}

由于$_POST['Accept']未在第一页加载时设置,因为它是GET请求而不是POST请求,您将转到else块,该块立即重定向您。

尝试这样的事情:

if (isset($_POST['Accept'])) {
    if ($_POST['Accept'] == 'Accept') {
        $_SESSION['did_accept'] = true;
        header ('Location: http://www.google.com');
        die('<a href="http://www.google.com">Click here to continue</a>');
    } else {
        header ('Location: http://www.yahoo.com');
        die('<a href="http://www.yahoo.com">Click here to continue</a>');
    }
}

答案 3 :(得分:0)

由于我从@Barmar,@ McCormick32,@ Dezza以及所有其他人那里得到的所有好建议,以下是我的工作代码,就像我希望它基于我的原始帖子一样:

<!DOCTYPE html>
<html>
<head>
<title>Warning Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<?php
session_start();

if (isset($_POST['Accept'])) {
if ($_POST['Accept'] == 'Accept') {
    $_SESSION['did_accept'] = true;
    header ('Location: https://www.google.com');
    die('<a href="https://www.google.com">Click here to continue</a>');
}
}
if (isset($_POST['Accept'])) {
if ($_POST['Accept'] == 'Decline') {
    $_SESSION['did_accept'] = true;
    header ('Location: http://www.yahoo.com');
    die('<a href="http://www.yahoo.com">Click here to continue</a>');
}
}
?>

</head>
<body>
<p>Some text</p>

<form method="post" action="">

<label>
<input type="radio" name="Accept" value="Accept" id="Accept" onClick="Accept()">
Accept</label>
<br>
<label>
<input type="radio" name="Accept" value="Decline" id="Decline" onClick="Decline()">
Decline</label>
<br>
<input type="submit" value="Submit">

</form>
</body>
</html>

谢谢!