Как опубликовать значение переключателя в базе данных с помощью AJAX? - PullRequest
0 голосов
/ 07 ноября 2019

Я хочу иметь возможность публиковать значение радиокнопки в базе данных без необходимости отправлять форму, поэтому я и попытался сделать это, используя 'on change'.

$("input:radio[name=q1_MC]").on("change", function () {

      var dunno1 = $(this).serialize();

      $.ajax({
         url: "get_response.php",
         type: "POST",
         data: dunno1,
         success: function (data) {

         console.log("working)";

          },
              error: function (request, status, error) {
              console.log(request.responseText);
                }
            });
        });

Мой console.log действительно отображается, когда я нажимаю одну из своих радиокнопок.

Внутри get_response.php у меня есть:

<?php 
require("db_connection.php");


if((isset($_POST['your_name']) {

    $yourName = $conn->real_escape_string($_POST['your_name']);
    $q1_MC = $conn->real_escape_string($_POST['q1_MC']);
    $q2 = $conn->real_escape_string($_POST['q2']);
    $q3 = $conn->real_escape_string($_POST['q3']);
    $q4 = $conn->real_escape_string($_POST['q4']);
    $q5 = $conn->real_escape_string($_POST['q5']);
    $q6 = $conn->real_escape_string($_POST['q6']);
    $q7_MC = $conn->real_escape_string($_POST['q7_MC']);
    $q8 = $conn->real_escape_string($_POST['q8']);


    $sql="INSERT INTO commenttable (name, q1_MC, q2, q3, q4, q5, q6, q7_MC, q8) VALUES ('".$yourName."','".$q1_MC."', '".$q2."', '".$q3."', '".$q4."', '".$q5."', '".$q6."', '".$q7_MC."', '".$q8."')";

    if(!$result = $conn->query($sql)){
    die('There was an error running the query [' . $conn->error . ']');
    } else {
    echo "Thank you! Your feedback is appreciated";
    }
}


?>

HTML:

<input type="radio" name="q1_MC" value="Excited"> Excited

<input type="radio" name="q1_MC" value="Optimistic"> Optimistic

<input type="radio" name="q1_MC" value="Indifferent"> Indifferent

<input type="radio" name="q1_MC" value="Nervous"> Nervous

<input type="radio" name="q1_MC" value="Sceptical"> Sceptical

1 Ответ

0 голосов
/ 08 ноября 2019

if((isset($_POST['your_name']) будет верно только при отправке всей формы. В вашем случае вы, кажется, публикуете только ключ / значение переключателя.

EG:

$("input:radio[name=q1_MC]").on("change", function() {
  var dunno1 = $(this).serialize();
  console.log(dunno1);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <label><input type="radio" name="q1_MC" value="test1" />test1</label>
  <label><input type="radio" name="q1_MC" value="test2" />test2</label>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...