gpt4 book ai didi

php - 使用 PHP 表单中的复选框收集多个信息

转载 作者:行者123 更新时间:2023-11-29 02:22:06 25 4
gpt4 key购买 nike

我有一份 PHP 问卷,在每个问题上我都会收到两条信息。

 1. An answer from a scale from 1 to 5

2. The importance assigned for this question from the part of the user on a scale let's say from 1 to 3.

我如何将我收到的答案与一个变量 user_id 连接起来,该变量 user_id 在数据库的表中与用户 ID 相对应。

 echo '<label ' . ($response['response'] == NULL ? 'class="error"' : '') . ' for="' . $response['response_id'] . '">' . $response['topic_name'] . ':</label>';
echo '<input type="radio" id="' . $response['response_id'] . '" name="' . $response['response_id'] . '" value="6" ' . ($response['response'] == 6 ? 'checked="checked"' : '') . ' />All';
echo '<input type="radio" id="' . $response['response_id'] . '" name="' . $response['response_id'] . '" value="1" ' . ($response['response'] == 1 ? 'checked="checked"' : '') . ' />Love ';
echo '<input type="radio" id="' . $response['response_id'] . '" name="' . $response['response_id'] . '" value="2" ' . ($response['response'] == 2 ? 'checked="checked"' : '') . ' />Hate';
echo '<input type="radio" id="' . $response['response_id'] . '" name="' . $response['response_id'] . '" value="3" ' . ($response['response'] == 3 ? 'checked="checked"' : '') . ' />Maybe';
echo '<input type="radio" id="' . $response['response_id'] . '" name="' . $response['response_id'] . '" value="4" ' . ($response['response'] == 4 ? 'checked="checked"' : '') . ' />Super';
echo '<input type="radio" id="' . $response['response_id'] . '" name="' . $response['response_id'] . '" value="5" ' . ($response['response'] == 5 ? 'checked="checked"' : '') . ' />All<br />';
$hidden_param=$response['response_id'];
echo '<input type="radio" id="' . $hidden_param . '" name="' . $hidden_param . '" value="6" ' . ($response['importance'] == 6 ? 'checked="checked"' : '') . ' />Mandatory';
echo '<input type="radio" id="' . $hidden_param . '" name="' . $hidden_param . '" value="1" ' . ($response['importance'] == 1 ? 'checked="checked"' : '') . ' />Not important ';
echo '<input type="radio" id="' . $hidden_param . '" name="' . $hidden_param . '" value="2" ' . ($response['importance'] == 2 ? 'checked="checked"' : '') . ' />It dosen't matter for me <br />';

对于信息的第一部分,它有效,但对于第二部分,我收到隐藏参数错误,因为未将其定义为变量。

对我来说,使用 user_id 非常重要,因为在以下实现中也知道要设置重要性的答案:

foreach ($_POST as $response_id => $response) {
$query = "UPDATE mismatch_response SET response = '$response' WHERE response_id = '$response_id'";
mysqli_query($dbc, $query);
}

foreach ($_POST as $response_id => $importance) {
$query = "UPDATE mismatch_response SET importance = '$importance' WHERE response_id = '$response_id'";
mysqli_query($dbc, $query);
}

最佳答案

我想我有一个更完整的解决方案给你这是一个单页 php 脚本,它将执行以下操作;

  • 如果用户请求值不存在(使用嵌入的用户 ID 值),则显示提交表单
  • 从表单中解析并输出评分
  • 在调用 displayForm 函数时接受 UserId 值作为变量

我制作了一个模拟问题集并给出了您的评分和次级评分的问题?系统

我没有做太多格式化或任何事情来美化它,请记住你应该将这些请求包装在过滤器或 htmlentities 或两者中以防止攻击

<?php
$questions = array(
1 => "How old is old",
2 => "Why is green not red",
3 => "How do you climb while swimming",
4 => "How long is long",
);

$user = isset($_REQUEST["user"]) ? $_REQUEST["user"] : null;
if($user != null)
{
echo "We have data for user ".$user."<br/>";

foreach ($questions as $key => $value)
{
$rating = $_REQUEST["q_".$key."_rating"];
$importance = $_REQUEST["i_".$key."_importance"];

echo "<br/>Question '".$key."' rating '".$rating."' Importance '".$importance."'";
}
echo "<br/>";
}
else
{
displayForm(1);
}

function displayForm($userId)
{
global $questions;

$ratings = array("All", "Love", "Hate", "Maybe", "Super");

$importance = array("Mandatory", "Not important", "It doesn&#39;t matter");

echo "<form>";
echo "<input type='hidden' name='user' value='$userId'>";
foreach ($questions as $key => $value)
{
echo "Question ".$key.") ".$value."?";

$ratingHtml = "";
foreach ($ratings as $rat)
{
$ratingHtml .= "$rat <input type='radio' name='q_".$key."_rating' id='$key' value='$rat' />";
}

$importHtml = "";
foreach ($importance as $import)
{
$importHtml .= "$import <input type='radio' name='i_".$key."_importance' id='$import' value='$import' />";
}

echo "[".$ratingHtml."] [".$importHtml."]<br/>";
}
echo "<input type='submit' /></form>";
}
?>

这应该会有所帮助,还有很多需要改进的地方,比如传递 id 而不是字符串来进行评级和重要性分级

我只是将 1 作为用户 ID 传递给 displayForm 函数,我猜测该值将在某个时候来自数据库或 session 变量

关于php - 使用 PHP 表单中的复选框收集多个信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30017425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com