Php 单击“我的表单”中的按钮时出现的问题

Php 单击“我的表单”中的按钮时出现的问题,php,forms,Php,Forms,我的表格有问题。我创建了3个按钮,当我点击其中一个按钮时,我想在我的配料储备功能中添加“+1” <?php if (isset($_POST['salade']) AND $_POST['salade'] == '+') { $nom='salade'; $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom"); $req->execute(array('

我的表格有问题。我创建了3个按钮,当我点击其中一个按钮时,我想在我的配料储备功能中添加“+1”

<?php
  if (isset($_POST['salade']) AND $_POST['salade'] == '+') {
    $nom='salade';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));
  }
  elseif (isset($_POST['steak']) AND $_POST['steak'] == '+') {
    $nom='steak';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));}
  else {
    $nom='cornichon';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));
  }
?>
但问题是,例如,当我点击第一个按钮时,它会增加+1,所以这很好。但是如果我现在单击第二个按钮(在单击第一个按钮之后),它会在与我的第一个按钮对应的元素上再次添加+1。在我重新点击第二个按钮后,它为我的第二个按钮添加+1

<?php
  if (isset($_POST['salade']) AND $_POST['salade'] == '+') {
    $nom='salade';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));
  }
  elseif (isset($_POST['steak']) AND $_POST['steak'] == '+') {
    $nom='steak';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));}
  else {
    $nom='cornichon';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));
  }
?>
这是我的代码:

<?php
  if (isset($_POST['salade']) AND $_POST['salade'] == '+') {
    $nom='salade';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));
  }
  elseif (isset($_POST['steak']) AND $_POST['steak'] == '+') {
    $nom='steak';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));}
  else {
    $nom='cornichon';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));
  }
?>

我认为您需要将表单上的每个按钮分开,因为当您提交PHP帖子时,请获取表单中的所有内容,因此如果您隐藏了输入,他将获取它的值,因此您所做的是反复获取相同的元素,这将使用三个按钮和相同的值得到相同的结果如果为此添加第四个或第五个按钮,则需要在表单上的每个按钮上对它们进行隔离,或者使用jquery来处理使用ajax I的情况
希望我的解释是清楚的

我认为你需要将表单上的每个按钮分开,因为当你提交PHP帖子时,会将表单中的所有内容都记录下来,因此如果你隐藏了输入,他会将其记录下来,所以你所做的是一遍又一遍地记录相同的元素,这会给你相同的结果如果添加第四个或第五个按钮,则需要将它们隔离在表单上的每个按钮上,或者使用jquery来处理使用ajax I的那些事情
<?php
  if (isset($_POST['salade']) AND $_POST['salade'] == '+') {
    $nom='salade';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));
  }
  elseif (isset($_POST['steak']) AND $_POST['steak'] == '+') {
    $nom='steak';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));}
  else {
    $nom='cornichon';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));
  }
?>

希望我的解释清楚

它不起作用。当我重新加载我的站点时,增量仍然在这里。然后我认为你需要在youtube上观看一个视频,类型为Ajax,带有多个表单和一个PHP处理文件。这是一个9分钟的视频,它将向你解释如何在你的示例中使用相同的想法,它将起作用。它不起作用。当我重新加载我的站点时,增量还在这里。那么我认为你需要在youtube上观看一个视频,类型为Ajax,包含多个表单和一个PHP处理文件。这是一个9分钟的视频。它将向你解释如何在你的示例中使用相同的想法,并且它会起作用。你可以共享表单HTML吗?你有太多未关闭的问题,你能分享一下HTML表格吗?你有太多未解决的问题了。
<?php
  if (isset($_POST['salade']) AND $_POST['salade'] == '+') {
    $nom='salade';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));
  }
  elseif (isset($_POST['steak']) AND $_POST['steak'] == '+') {
    $nom='steak';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));}
  else {
    $nom='cornichon';
    $req=$db->prepare("UPDATE ingredients SET stock = stock +1 WHERE nom =:nom");
    $req->execute(array('nom' =>$nom));
  }
?>