Как рассчитать итоговое значение, взяв значения переключателей, используя PHP и Javascript? - PullRequest
0 голосов
/ 05 марта 2020

Я представляю вопросы из базы данных, используя php. Используя массив я отображаю их в таблице. Переключатели сгруппированы, указав в качестве имени переменную «i» в php. Из-за этого я не могу получить значения этих переключателей для функции javascript, чтобы вычислить общее значение.

Вот как представлена ​​таблица:

This is how the table is represented

Я хочу вычислить сумму из выбранных значений переключателей и отправить значение на другую страницу. Как я могу это сделать? Заранее большое спасибо!

Ниже приведен мой код.

<html>

<body>

 <?php
$DATABASE_HOST = 'localhost';
$DATABASE_USER = 'root';
$DATABASE_PASS = '';
$DATABASE_NAME = 'psych';

$connect = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);

    $res = mysqli_query($connect, "SELECT questions FROM questions");

    $quests = mysqli_fetch_array($res);  

  ?>
<form name="form1" id="form1" method="post" action="../../Algorithms/score.php"> 

<table> 
  <th>
  <td width=100>Strongly agree </td>
  <td width=100>Agree </td>
  <td width=100>Neutral </td>
  <td width=100>Disagree </td>
  <td width=100>Strongly disagree </td>
  </th>
<?php 

$score=0;

    $i=1;
  while($row = mysqli_fetch_array($res))
    {
     echo "<tr> <td width=500>".$i.". ".$row['questions']."</td>";
     echo '<td width=100> <input type="radio" name="'.$i.'"  value="1" > </td>';
     echo '<td width=100> <input type="radio" name="'.$i.'"  value="2" > </td>';
     echo '<td width=100> <input type="radio" name="'.$i.'"  value="3" > </td>';
     echo '<td width=100> <input type="radio" name="'.$i.'"  value="4" > </td>';
     echo '<td width=100> <input type="radio" name="'.$i.'"  value="5" > </td>';
       // if (score."$i") {echo "score$i";}
     echo "</tr>"; 
     // echo $scores[$i];
     //$scores[$i]=$_POST['score'.$i];
     $i++;

      }

    echo "</table>"; 
    echo "<br>"; 

  ?> 

  <input type='submit' name='submit' value='Submit'/>    

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Прежде всего, будет лучше назвать ваши входы осмысленными именами.

Например,

echo '<td width=100> <input type="radio" name="score['.$i.']"  value="1" > </td>'

это поможет вам различить guish между другими полями - если вам нужно добавить другие поля -

на стороне сервера, теперь у вас есть массив входных данных с именем score, вы можете суммировать / вычислять итоговое значение с помощью array_sum как:

if (isset($_POST['score'])) {
    $total = array_sum($_POST['score']);
}

, чтобы сохранить это значение, вы можете использовать session с этим

0 голосов
/ 05 марта 2020
  1. Вы можете использовать одну и ту же кнопку-переключатель, но разные значения <input type="radio" name="score" value="1" >, <input type="radio" name="score" value="2" >.
  2. В переключателях передать пользовательский класс следующим образом: <input type="radio" class="cstm-radio" name="score" value="1" >;
  3. использовать на -click java -script или jquery событие, чтобы получить значение переключаемой кнопки и выполнить запрос ajax, передать URL-адрес файла или имя файла, в котором необходимо выполнить внутреннюю операцию.

Вы можете использовать этот код для выполнения ajax запроса!

$('.cstm-radio').click(function () {
  var radio_val = $(this).val();
   $.ajax({
    //url of your php file
    url: "post.php",
    type: "POST",
    data: {score: radio_val},
    success: function (data) {
        // alert radio value here
        alert(data);
    }
 });
});
...