【问题标题】:Strange redirect in a form whith checkbox带有复选框的表单中的奇怪重定向
【发布时间】:2017-11-09 17:53:42
【问题描述】:

问题是,在 chrome 中,当我单击提交时,不会调用 php 文件并将我重定向到另一个 html 页面,在 Firefox 中,当我选择三个复选框时,它会重定向到与 chrome 上相同的那个 html 页面。 我尝试使用收音机而不是复选框,但它有同样的问题。 如果我使用输入文本而不是复选框,它可以工作! 同一个人可以帮忙吗?!?!?

这是表格:

<form action="editOpenedDays.php" method="post">
  <input type="checkbox" name="lunedi" value="lun"/>Lunedì<br>
  <input type="checkbox" name="martedi" value="mar"/>Martedì<br>
  <input type="checkbox" name="mercoledi" value="mer"/>Mercoledì<br>
  <input type="checkbox" name="giovedi" value="gio"/>Giovedì<br>
  <input type="checkbox" name="venerdi" value="ven"/>Venerdì<br>
  <input type="checkbox" name="sabato" value="sab"/>Sabato<br>
  <input type="checkbox" name="domenica" value="dom"/>Domenica<br><br>
  <input type="submit" name="submit" value="Inserisci/Modifica">
</form>
<?php
include 'connect.php';

$ID = $_SESSION['userId'];

$days['lunedi'] = isset($_POST["lunedi"]) ? $_POST["lunedi"] : "";
$days['martedi'] = isset($_POST["martedi"]) ? $_POST["martedi"] : "";
$days['mercoledi'] = isset($_POST["mercoledi"]) ? $_POST["mercoledi"] : "";
$days['giovedi'] = $isset($_POST["giovedi"]) ? $_POST["giovedi"] : "";
$days['venerdi'] = isset($_POST["venerdi"]) ? $_POST["venerdi"] : "";
$days['sabato'] = isset($_POST["sabato"]) ? $_POST["sabato"] : "";
$days['domenica'] = isset($_POST["domenica"]) ? $_POST["domenica"] : "";

$formattedDays = null;

foreach ($days as $day){

}

if ($days != null){
    $stmt=$conn->prepare();
    $stmt->bind_param("s", $formattedDays);
    $stmt->execute();
    header("Location: informazioni.php");
}
else{
    echo "Non sono state inseriti giorni di apertura";
}

PS:对不起我的英语

【问题讨论】:

  • 这听起来像是您的 PHP 代码中的问题,而不是 HTML。
  • 能分享一下PHP代码吗?
  • 它会将您重定向到哪个页面?
  • 完成,它重定向到我之前创建的 homePage.html。第一个回显不显示@TidyDev

标签: javascript php jquery html checkbox


【解决方案1】:
$isset($_POST["giovedi"])

尝试删除 isset() 上的“$”。 ;)

顺便说一句,你可以替换这个:

$days['lunedi'] = isset($_POST["lunedi"]) ? $_POST["lunedi"] : "";
$days['martedi'] = isset($_POST["martedi"]) ? $_POST["martedi"] : "";
$days['mercoledi'] = isset($_POST["mercoledi"]) ? $_POST["mercoledi"] : "";
$days['giovedi'] = isset($_POST["giovedi"]) ? $_POST["giovedi"] : "";
$days['venerdi'] = isset($_POST["venerdi"]) ? $_POST["venerdi"] : "";
$days['sabato'] = isset($_POST["sabato"]) ? $_POST["sabato"] : "";
$days['domenica'] = isset($_POST["domenica"]) ? $_POST["domenica"] : "";

通过这个:

$dayTab = array('lunedi', 'martedi', 'mercoledi', 'giovedi', 'venerdi', 'sabato', 'domenica');
foreach($dayTab as $day) {
    $days[$day] = $_POST[$day] ?: '';
}

【讨论】:

  • 同样的问题页面没有被调用
  • 同样的问题,页面不调用它调用homepage.html
  • 我的猜测:$stmt=$conn->prepare(); $stmt->bind_param("s", $formattedDays);由于 prepare 没有参数,$smtp 为 FALSE,并且您在布尔值上调用 bind_parameter(),这会导致 php 错误。尝试用 $smtp 注释这 3 行,以进行测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 2020-11-04
相关资源
最近更新 更多