首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取更新SQL表中的列的ajax请求

获取更新SQL表中的列的ajax请求
EN

Stack Overflow用户
提问于 2019-02-27 04:18:53
回答 1查看 40关注 0票数 0

我试图让当前代码从表单中获取on或off值,并使用对JS函数的函数调用将其放入SQL数据库中,该JS函数包含一个AJAX请求,然后将其发送到运行实际查询的PHP页面。我不确定我做错了什么,API更令人困惑而不是有帮助。感谢大家的帮助!

当前页面代码:

代码语言:javascript
运行
复制
<?php require('../php/validation.php');?>
<?php require('../php/background.php');?>
<?php
  if(isset($_POST['selectonoff'])){
    $_SESSION['onoff'] = $_POST['selectonoff'];
    $query = 'UPDATE onoff SET onoroff = $_POST["selectonoff"] WHERE ID = 1;';
    $update = mysqli_query($db, $query);
  }
     ?>
<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">
  <title>User Settings Dropdown Menu</title>
      <link rel="stylesheet" href="../css/settings.css">
<script type="text/javascript">
  function load() {
      document.getElementById("selectonoff").value = '<?php echo $_SESSION['onoff'];?>';
}
</script>
<script src="jquery.js"></script>
<script>
  function rel(id)
  {
      jQuery.ajax({
       type: "POST",
       data: 'id='+id,
       url: "../php/update.php",
       cache: false,
       success: function(response)
       {
         alert("Record successfully updated");
       }
     });
 }
</script>
</head>
<body onload="load();">
  <!-- <div id="wrap"> -->
    <br><br><br><br>
    <h1>Admin Settings Menu</h1>
      <form method="post" action="adminconfig.php">
        <p>Toggle BBQ Form</p>
        <select id="selectonoff" name="selectonoff" onchange="this.form.submit(); rel();">
          <option value="NONE">Select</option>
          <option value="ON">Toggle ON</option>
          <option value="OFF">Toggle OFF</option>
        </select>
      </form>
    <form action="../index.php">
    <input type="submit" value="Home" />
    </form>
<script type="text/javascript">
</script>
</body>
  <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
    <script  src="../js/index.js"></script>
</html>

当前PHP代码:

代码语言:javascript
运行
复制
<?php 
    require ('php/server.php');
    $db = mysqli_connect('localhost', 'root', '', 'dedricks');
    if(!$db){
        die("Connection Failed: ".mysqli_connect_error());
    }
    $var = @$_POST['id'] ;
    $query = 'UPDATE onoff SET onoroff = $var WHERE ID = 1;';
    mysqli_query($db, $query);
?>
EN

Stack Overflow用户

发布于 2019-02-27 04:32:04

这里需要做的修改很少。

错误

对于需要在ajax call

  • onchange
  1. selectonoff列表中发送的代码中的任何地方,您没有读取select控件的值试图submit form,同时调用rel函数(不带任何参数)。当selectonoff选择发生变化时,似乎需要触发ajax调用。
  2. 需要通过cdn或从本地目录
  3. 添加一次jquery,它需要添加到头部的脚本标签之前。

待办事项

onchange中删除this.form.submit();rel。而是删除整个onchange

基于您的页面并将数据提交到php页面的代码如下所示。您可以根据需要进行更改。

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>User Settings Dropdown Menu</title>
    <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
    <script type="text/javascript">
      function rel(id){

          var formData = {"id": id};
          $.ajax({
           type: "POST",
           data: formData,
           url: "../app/update.php",
           cache: false,
           success: function(response){
               console.log("response", response);
             alert("Record successfully updated");
           },
           error: function(error){
                console.log("error", error);
           }
         });
     }

     $(document).ready(function(){
         $("#selectonoff").change(function(){
             var val = $("#selectonoff option:selected").val();
             rel(val);
         });
     });
    </script>
</head>
<body>
  <!-- <div id="wrap"> -->
    <br><br><br><br>
    <h1>Admin Settings Menu</h1>
    <form method="post" action="adminconfig.php">
        <p>Toggle BBQ Form</p>
        <select id="selectonoff" name="selectonoff">
            <option value="NONE">Select</option>
            <option value="ON">Toggle ON</option>
            <option value="OFF">Toggle OFF</option>
        </select>
    </form>
    <form action="../index.php">
        <input type="submit" value="Home" />
    </form>
</body>

</html>

注意,我现在已经测试了上面的代码,并将ajax请求提交给脚本。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54893453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档