从onclick执行php脚本插入数据库

时间:2018-07-09 11:04:07

标签: javascript php html

我创建了一个工作示例,该示例使用提交按钮将单选按钮的值插入数据库,但是现在我正在寻找不使用提交按钮的插入方法。

我有一个javascript函数,当单击单选按钮时,应执行php。

我已经研究了为什么我无法使其运行,但是我不确定它是否有可能或者是否有更好的方法来实现。下面是我的代码

<html>
<head>
  <title>survey</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" type="text/css" href="test.css" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>

</head>

<div class="cc-selector">
      <form class="cc-selector" id="form-id"  method="POST">
    <label><input id="happy" type="radio" name="radioAnswer" onclick="doSomething();"></label>
    <label class="drinkcard-cc happy" for="happy"></label>
    <label><input id="sad" type="radio" name="radioAnswer" onclick="doSomething();"></label>
    <label class="drinkcard-cc sad"for="sad"></label>
  </form>
        </div>
        <script type="text/javascript" src="jquery.min.js"></script> 

<script type="text/javascript"> 
function doSomething() { 
    $.get("sample2.php"); 
    return false; 
} 
</script>

</body>
</html>

还有我的php sample2.php

<?php
$con = mysqli_connect("localhost","root","","test");

// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

  if (isset($_POST['radioAnswer'])){
        $radioAnswer = $_POST['radioAnswer'];
        mysqli_query($con,"INSERT INTO survey (radioAnswer) VALUES ('$radioAnswer')");
    }
?>

5 个答案:

答案 0 :(得分:0)

使用onchange。还有一个开体标签。

<html>
<head>
  <title>survey</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" type="text/css" href="test.css" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>

</head>
<body>
<div class="cc-selector">
      <form class="cc-selector" id="form-id"  method="POST">
    <label><input id="happy" type="radio" name="radioAnswer" onchange="doSomething();"></label>
    <label class="drinkcard-cc happy" for="happy"></label>
    <label><input id="sad" type="radio" name="radioAnswer" onchange="doSomething();"></label>
    <label class="drinkcard-cc sad"for="sad"></label>
  </form>
        </div>
        <script type="text/javascript" src="jquery.min.js"></script> 

<script type="text/javascript"> 
function doSomething() { 
    $.get("sample2.php"); 
    return false; 
} 
</script>

</body>
</html>

答案 1 :(得分:0)

您正在执行GET请求中的数据库插入

首先,这是非常糟糕的做法。

第二,它不能按预期工作,因为GET请求可能被浏览器或代理缓存,

顺便说一句,您的PHP正在读取$ _POST

答案 2 :(得分:0)

使用ajax javascript发送请求

function doSomething() { 
    $.ajax(
      {
        type: 'GET',
        data: {'radio1': $('#happy').is(':checked'), 'radio2': $('#sad').is(':checked')}
        url: '/your_php_file_name.php',
        success: function(data){
          console.log("here is the result : " + data);
        }
      }
    );
} 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cc-selector">
      <form class="cc-selector" id="form-id"  method="GET>
    <label><input id="happy" type="radio" name="radioAnswer" onclick="doSomething();"></label>
    <label class="drinkcard-cc happy" for="happy"></label>
    <label><input id="sad" type="radio" name="radioAnswer" onclick="doSomething();"></label>
    <label class="drinkcard-cc sad"for="sad"></label>
  </form>
        </div>

在your_php_file_name.php文件中

<?php
    // your javascript radio button 1 value;
    $happy = $_GET('radio1');
    // your javascipt radio button 2 value ;
    $sad = $_GET('radio2');
    echo 'success';
?>

答案 3 :(得分:0)

$。get()方法使用HTTP GET请求从服务器请求数据。 您要做的是使用HTTP POST请求从服务器发送数据。 我建议您使用:

    $.post("sample2.php",
{
    name: "Donald Duck",
    city: "Duckburg"
},
function(data, status){
    alert("Data: " + data + "\nStatus: " + status);
});

甚至更好:

    $.ajax({
   url : 'sample2.php',
   type : 'POST', 
   data : 'email=' + email + 'content=' + content,
   dataType : 'html'
});

https://www.w3schools.com/jquery/ajax_ajax.asp中找到有关$ .ajax的更多详细信息

答案 4 :(得分:0)

想出了如何使用onclick方法将我的Php插入下面的sql数据库答案中。

 <form name="form" action="sample2.php" class="cc-selector" method="post" >

       <label class="label">
        <input type="image" name="Opinion" value="Positive" src="happy.png" onclick="document.getElementById('form').submit();"/>

       </label>

       <label class="label">
        <input type="image" name="Opinion" value="Negative" src="sad.png" onclick="document.getElementById('form').submit();"/>
       </label>
      </form>