gpt4 book ai didi

php - 如何在自动生成for循环中从html表单中获取唯一值

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

我有一个循环中的 Html 表单。因此,当我的 PHP 脚本从数据库中获取一行时,每一行都附加了相同的 html 表单。然后我获取这些表单值并将其传递给 ajax 脚本,然后调用 php 文件,然后将这些值更新到 DB 中。问题是当我更新这些值时,表单会更新所有行中的每一列。(下面附有示例图像。在将更新值存储在数据库中后,我的关键性和优先级列具有相同的值)enter image description here

**是的,我在两个表中都有一个自动生成的主键**

这就是我的循环

          <?php
foreach($results as $data){

echo '<tbody>
<tr class="dropDown">
<td>1</td>
<td>'.$data['Title'].'</td>
<td>'.$data['criticality'].'</td>
<td>'.$data['Priority'].'</td>
<td>'.$data['Description'].'</td>
<td>'.$data['Date_Submitted'].'</td>
<td></td>
</tr>
</tbody>';

}

?>

这是我的网络表单:

        <form action="/action_page.php">
<fieldset>
<label>XYZ Questions </label><br>
<label class="radio-inline">
<input type="radio" name="optradio">
<label>YES</label>
</label>
<label class="radio-inline left">
<input type="radio" name="optradio">
<label>NO</label>
</label>
</fieldset>
<fieldset>
<label>XYZ Questions </label><br>
<label class="radio-inline">
<input type="radio" name="optradio1">
<label>YES</label>
</label>
<label class="radio-inline left">
<input type="radio" name="optradio1">
<label>NO</label>
</label>
</fieldset>
<div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>

这是我获取值的 ajax 脚本

      var launchAjax = function () { // event handler for button click
$.get(
"php/inbetween.php/",
{
question: $("[name=optradio]:checked").val(),
question1: $("[name=optradio1]:checked").val(),

}
);
}

$("#no").click(launchAjax);

这就是如何转换这些值并将数字保存到 bd

    function getMark($answer, $mark = 1){ 
$result = 0;
if($answer == 'YES'){
$result = $mark;
}
return $result;
}
$p = 0;
$p += getMark($question, 1); // provide the answer and the mark
$p += getMark($question1, .5);

$c = 0;
$c += getMark($question, 0.5); // provide the answer and the mark
$c += getMark($question1, 1);

这是我的 PHP 脚本,用于更新表中的表单值

 $command1 = "UPDATE rating SET criticality = '$c' , Priority = '$p'";

// prepare and executing
$stmt1 = $dbh->prepare($command1);
$result1 = $stmt1->execute();

最佳答案

问题出在您的 SQL 代码中:

UPDATE rating SET criticality = '$c' , Priority = '$p';

这要求您的数据库更新表“评级”,并将“关键性”和“优先级”设置为存储在 $c$p 中的值。请注意,它没有告诉数据库要更新哪一行,因此它在所有行上运行更新。

数据库的每个行都应该有一个主键,它通常是一个递增的整数。这通常是执行此类更新的方式:

UPDATE rating SET criticality = '$c' , Priority = '$p' WHERE id = '$id';

您需要找到一种方法将行 ID 包含在 Ajax 调用中,然后 PHP 脚本可以将其传递到 MySQL 以更新正确的行。

关于php - 如何在自动生成for循环中从html表单中获取唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48624996/

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