javascript - onChange JavaScript 为 sql 查询

标签 javascript php jquery mysql ajax

所以我知道有 100% 的方法可以做到这一点,但我认为我做得不对。这几乎就是我这段代码的目标。

我希望用户能够选择 30 分钟到 5 小时之间的时间间隔。 (那么有 10 个选项)每 30 分钟间隔再向变量添加 0.5,让我们调用 D。

变量 I、E 和 T 依赖于变量 D。

我目前有一个下拉菜单,其中包含有关更改的 javascript。但之后我需要使用变量 D、I、E 和 T 更新 MYSQL 服务器中的记录。

这是我到目前为止的代码:

<form name="Tame" method="POST">
  <select id="VariableD" onchange="myFunction()">
    <option value=".5">30 mins
    <option value="1">1 hour
    <option value="1.5">1 hour 30 mins
    <option value="2">2 hours
    <option value="2.5">2 hour 30 mins
    <option value="3">3 hour
    <option value="3.5">3 hours 30 mins
    <option value="4">4 hours
    <option value="4.5">4 hours 30 mins
    <option value="5">5 hour     
  </select>
  <input type="hidden" name="VariableI" value="2">
  <input type="hidden" name="VariableT" value="4">
  <input type="hidden" name="VariableE" value="10">
  <input type="submit" name="TameSub" value="Tame">
</form>

然后我就有了我的 JavaScript:

<script>
  function myFunction() {
    var x = document.getElementById("VariableD").value;
    var TameEnergy = x * 10;
    var TameIntell = x * 2;
    var TameGain =   x * 4;

    var En = document.getElementById("VariableE");
    var Intell = document.getElementById("VariableI");
    var Tame = document.getElementById("VariableE");

    En.value = TameEnergy;
    Intell.value = TameIntell;
    Tame.value = TameGain;
  }
</script>

在我用脚本来确定所有变量之后,我用 PHP 来更新记录:

<?php
  $SubTame = $_POST['TameSub'];
  $I = $_POST['VariableI'];
  $E = $_POST['VariableE'];
  $T = $_POST['VariableT'];

  if($SubTame) {
    $sql = "UPDATE Horse SET Energy='$E', IntelligenceP='$I', Taming='$T' WHERE id='$colname_HorseInfo'";
    if ($con->query($sql) === TRUE) {
    ?>
      <script>location.reload();</script>
      <?php
    } else {}
  }
?>

当我这样做时,我更新了记录,但它仅按表单中的默认值进行更新,这意味着更新时 JavaScript 中的任何更改都不会被识别。如果有人可以向我解释在这种情况下我会如何做,我愿意使用 AJAX 来做到这一点。

最佳答案

不用添加js代码,直接在php中进行操作。

在 html 出现任何错误之前:

<select I'd="VariableD" onchange="myFunction()">
should be
<select id="VariableD" name="VariableD" onchange="myFunction()">

现在在 php 中,这不需要 js 代码

$val=$_POST['VariableD']; //see reference below for exact code
$I=$val*10;
//set other variables
//execute query

如果php这样改的话,html中也不需要onchange()了。

有关如何在 php 中选择下拉值的正确引用 Need to set variable = to dropdown selection in php/html

关于javascript - onChange JavaScript 为 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46782691/

相关文章:

javascript - 停止图像滚动 paraScrolling

javascript - getJSON 超时处理

php - geoip-database[-extra] 与 geoip-database-contrib

javascript - JQuery AJAX 不会在第二次后触发

php - 选择可输入的框并搜索数据库内容中的数据

javascript - Facebook 使用 jquery 移动框架

PHP - 解析 HTML 字符串中的纯文本

PHP post 提交后抛出 404 错误

javascript - 如何使用 jquery 查找 "p"元素的下一个 "this"同级元素?

javascript - module exports = mongoose 模型在 NodeJs 中做什么