我有一个专门为我的家人加入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/

10-12 19:02