我有一个专门为我的家人加入NASCAR而设计的网站。我最常使用的页面是“名册”页面。根据NASCAR的JSON文件,将驱动程序分为5个等级(A,B,C,D和E)。所有驱动程序的右侧都有一个名为“添加”的按钮。目前,它什么都不做。我想让它更改用户的驱动程序。例如,如果用户选择可能处于等级A的Kyle Busch,则会将其driver1更改为Kyle Busch。等级B,驱动程序2。依此类推。
我目前通过添加文本框来添加驱动程序,但这可能会令人讨厌。到目前为止,这里是按钮和其他东西:
$("#dummy_" + pos).before("<p>" + person.driver_name + " <input type='submit' class='btn btn-success' value='Add'>");
^ Javascript
以下是我现在的操作方法:
if(isset($_POST['add_driver1'])){
$driver1 = htmlentities($_POST['driver1']);
$conn->query("UPDATE users SET driver1='$driver1' WHERE id='$user->id'");
header('Location: ../roster/');
}
^ PHP
<form action="" method="Post">
<div class="input-group">
<input type="text" class="form-control" name="driver1" placeholder="Driver 1" autocomplete="off">
<div class="input-group-append">
<input type="submit" class="btn btn-outline-success" value="Set" name="add_driver1">
</div>
</div>
</form>
^ HTML
感谢所有帮助,谢谢!
最佳答案
您可以使用列表将等级映射到字段:
$rankToField = [
'A' => 'driver1',
'B' => 'driver2',
'C' => 'driver3',
'D' => 'driver4',
'E' => 'driver5',
];
您可以通过为每个“添加”创建一个表单来做到这一点:
<form method="POST" action="">
<input type="hidden" name="rank" value="<RANK_FROM_JSON>" />
<input type="hidden" name="driver" value="<DRIVER_FROM_JSON>" />
<input type="submit" .../>
</form>
在您的PHP脚本中,将其保存为:
$field = $rankToField[$_POST['rank']];
$driver = $_POST['diver'];
/* insert... */
如果JSON提供了驱动程序ID,则应在插入表单之前通过表单将ID求和,并在JSON文件中搜索值。
您可能需要看一下:http://php.net/manual/en/function.mysqli-escape-string.php替换您的
htmlentities
为了安全起见,准备好的声明:http://php.net/manual/en/mysqli.prepare.php
关于javascript - 如何根据事物的等级和按钮将事物添加到数据库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54847771/