Как отправить данные с кнопки Html в команду php

Я надеюсь, что это полезно сейчас Поскольку вы спросили меня о структуре базы данных, я создал ее

Я ценю вашу помощь! Заранее спасибо!

До сих пор у меня есть следующий HTML-код:

<html>
    <head>
      <title>Test Software</title>
    </head>
    <body>
      <label>
         Datum:<br/>
        <input name = "date" type = "date" placeholder = "Datum" style = "height: 50px; width: 100px;"/>
      </label>
      <label>
        <p> <form action = "#"> </p>
		    <label>Station:<br>
			        <select name = "top5" style = "height: 50px; width: 100px;"/> 
				    <option>Choice 1 </option> 
			    	<option>Choice 2 </option> 
				    <option>Choice 3 </option>
				    <option>Choice 4 </option>
				    <option>Choice 5 </option>
			    </select>
			
		    </label>
	    </form>
   </main>
      <br/><br/><br/>
      <input type = "submit" name = "button[Button1]" value = "Button 1" style = "height: 50px; width: 100px;"/>
      <input type = "submit" name = "button[Button2]" value = "Button 2" style = "height: 50px; width: 100px;"/>
      <input type = "submit" name = "button[Button3]" value = "Button 3" style = "height: 50px; width: 100px;"/>
      <input type = "submit" name = "button[Button4]" value = "Button 4" style = "height: 50px; width: 100px;"/>
      <input type = "submit" name = "button[Button5]" value = "Button 5" style = "height: 50px; width: 100px;"/>
 
     </form>
  </body>
</html>

Как я могу отправить данные Тому в php-файл, а затем сохранить его в базе данных?

DB
CREATE TABLE button_counter (
id INTEGER PRIMARY KEY,
name VARCHAR(64) NOT NULL,
datum DATE NOT NULL,
savedate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
Button BIT NOT NULL DEFAULT 0,
Button2 BIT NOT NULL DEFAULT 0,
Button3 BIT NOT NULL DEFAULT 0,
Button4 BIT NOT NULL DEFAULT 0
Button5 BIT NOT NULL DEFAULT 0
);

вы можете использовать ajax для отправки данных в скрипт php.

Rakesh Jakhar 25.06.2019 09:28

пожалуйста, покажите полный код с кнопками. Тогда я дам вам ответ с соответствующими именами.

Nipun Tharuksha 25.06.2019 09:30

@NipunTharuksha Я отредактировал пост и добавил полный код

Astra-Joe 25.06.2019 09:31

@ Астра-Джо, дай мне четкое представление. Может ли пользователь нажимать одну и ту же кнопку несколько раз, и вам нужно сохранить ее количество в БД. Я прав?

Nipun Tharuksha 25.06.2019 09:32

@NipunTharuksha, да, пользователь выбирает дату и выбор из тега select, а затем нажимает разные кнопки, и это должно храниться в БД. например, если пользователь нажимает 5 раз на кнопку 1 и 3 раза на кнопку 2, это должно быть сохранено для текущей даты и тега выбора до тех пор, пока не будет выбран новый тег выбора или дата.

Astra-Joe 25.06.2019 09:40

@ Астра-Джо, чтобы дать вам четкий ответ, еще одна вещь, которую нужно прояснить. Только представьте, если я нажму кнопку 1 5 раз, она сохранится в БД как текущая дата и время пять раз или только текущее время и дата с количеством нажатий кнопки. Также, пожалуйста, обновите свой вопрос, указав снимок таблицы, в которую вы хотите загрузить данные.

Nipun Tharuksha 25.06.2019 09:43

@NipunTharuksha Например, если я нажимаю кнопку 1 5 раз, она должна сохранить в БД текущую дату и выбранный тег выбора с подсчетом кликов по каждой кнопке.

Astra-Joe 25.06.2019 09:47

@Astra-Joe хорошо, пожалуйста, прикрепите снимок вашей таблицы БД

Nipun Tharuksha 25.06.2019 09:51

@NipunTharuksha, ты это имеешь в виду? Я создал SQL, но не уверен, что это правильно

Astra-Joe 25.06.2019 10:15

@Astra-Joe, если бы вы могли предоставить структуру базы данных, я могу предоставить четкий код

Nipun Tharuksha 25.06.2019 10:16

@NipunTharuksha Для каждой даты, выбора и кнопки должна быть таблица, в которой данные хранятся в формате . Пример в моем ответе

Astra-Joe 25.06.2019 11:20

@NipunTharuksha Я прикрепил пример в своем вопросе, было ли это полезно?

Astra-Joe 25.06.2019 12:13

@ Астра-Джо, дай мне 10 минут, я тестирую код. Я добавлю ответ в течение следующих 10 минут

Nipun Tharuksha 25.06.2019 12:23

@ Астра-Джо проверь ответ

Nipun Tharuksha 25.06.2019 12:41
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
14
3 377
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Пожалуйста, правильно отформатируйте html-код. Правильно отформатированный код находится здесь: Добавьте функцию js при каждом нажатии кнопки и в этой функции увеличьте соответствующий счетчик и установите в другом поле ввода.

	<html>
	   <head>
		  <title>Test Software</title>
	   </head>
	   <body>
		  <form action = "#">
			 <label>
			 Datum:<br/>
			 </label>
			 <input name = "date" type = "date" placeholder = "Datum" style = "height: 50px; width: 100px;"/>
			 <label>Station:<br>
			 </label>
			 <select name = "top5" style = "height: 50px; width: 100px;"/>
				<option>Choice 1 </option>
				<option>Choice 2 </option>
				<option>Choice 3 </option>
				<option>Choice 4 </option>
				<option>Choice 5 </option>
			 </select>
			 <input type = "submit" name = "button[Button1]" value = "Button 1" style = "height: 50px; width: 100px;"/>
			 <input type = "submit" name = "button[Button2]" value = "Button 2" style = "height: 50px; width: 100px;"/>
			 <input type = "submit" name = "button[Button3]" value = "Button 3" style = "height: 50px; width: 100px;"/>
			 <input type = "submit" name = "button[Button4]" value = "Button 4" style = "height: 50px; width: 100px;"/>
			 <input type = "submit" name = "button[Button5]" value = "Button 5" style = "height: 50px; width: 100px;"/>
		  </form>
	   </body>
	</html>

Для простой отправки формы вы можете использовать атрибуты тега формы.

Например: <form action = "<?=$_SERVER['PHP_SELF']; ?>" method = "POST" enctype= "multipart/form-data">

$_SERVER['PHP_SELF'] используется для перенаправления той же страницы с данными формы с ее методом (POST и GET).

Для проверки данных формы, доступных на странице, и вставки данных в базу данных это может вам помочь:

if (!empty($_POST)){
$data=$_POST['name']; 
$insert = "INSERT INTO table(name) VALUES('".$data."')";
if ($conn->query($insert) === TRUE) {  echo "Successfully Inserted";
}else{  echo "error insert";  }
}

да, я знаю @Dharman, но здесь он не говорит и не спрашивает о какой-либо безопасности. По крайней мере, прочитайте вопрос и попытайтесь помочь другим.

nkumar 25.06.2019 11:24
Ответ принят как подходящий

Я изменил ваш код, как показано ниже, и проверьте. Это работает. В вашем вопросе я вижу, что поле даты должно быть заполнено текущей отметкой времени. Но есть поле ввода для выбора даты для пользователя. Итак, я изменил ваш код, предполагая, что пользователь укажет дату. Пожалуйста, посмотрите приведенный ниже код, и если вы получите то, что вам нужно, отметьте его как ответ. Спасибо

index.php

<html>

<head>
    <title>Test Software</title>

    <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script>
        var counter1 = 0;
        $(document).on('click', '#button01', function(e) {
            e.preventDefault();
            counter1++;
            $("#button01").text('You have clicked' + counter1);
            $("#hidde_val_of_button01").val(counter1);
        });
        var counter2 = 0;
        $(document).on('click', '#button02', function(e) {
            e.preventDefault();
            counter2++;
            $("#button02").text('You have clicked' + counter2);
            $("#hidde_val_of_button02").val(counter2);
        });
        var counter3 = 0;
        $(document).on('click', '#button03', function(e) {
            e.preventDefault();
            counter3++;
            $("#button03").text('You have clicked' + counter3);
            $("#hidde_val_of_button03").val(counter3);
        });
        var counter4 = 0;
        $(document).on('click', '#button04', function(e) {
            e.preventDefault();
            counter4++;
            $("#button04").text('You have clicked' + counter4);
            $("#hidde_val_of_button04").val(counter4);
        });
        var counter5 = 0;
        $(document).on('click', '#button05', function(e) {
            e.preventDefault();
            counter5++;
            $("#button05").text('You have clicked' + counter5);
            $("#hidde_val_of_button05").val(counter5);
        });
    </script>
</head>

<body>
    <form action = "action.php" method = "post">
        <label>
            Datum:
            <br/>
            <input name = "date" type = "date" placeholder = "Datum" style = "height: 50px; width: 100px;" />
        </label>
        <label>
            <p> </p>
            <label>Station:
                <br>
                <select name = "top5" style = "height: 50px; width: 100px;" />
                <option>Choice 1 </option>
                <option>Choice 2 </option>
                <option>Choice 3 </option>
                <option>Choice 4 </option>
                <option>Choice 5 </option>
                </select>

            </label>

            </main>
            <br/>
            <br/>
            <br/>
            <button id = "button01" style = "height: 50px; width: 100px;">Button 1</button>
            <!--Using hiddne text input typeto pass the data!-->
            <input type = "text" hidden value = "0" id = "hidde_val_of_button01" name = "button01" />

            <button id = "button02" style = "height: 50px; width: 100px;">Button 2</button>
            <!--Using hiddne text input typeto pass the data!-->
            <input type = "text" hidden value = "0" id = "hidde_val_of_button02" name = "button02" />

            <button id = "button03" style = "height: 50px; width: 100px;">Button 3</button>
            <!--Using hiddne text input typeto pass the data!-->
            <input type = "text" hidden value = "" id = "hidde_val_of_button03" name = "button03" />

            <button id = "button04" style = "height: 50px; width: 100px;">Button 4</button>
            <!--Using hiddne text input typeto pass the data!-->
            <input type = "text" hidden value = "" id = "hidde_val_of_button04" name = "button04" />

            <button id = "button05" style = "height: 50px; width: 100px;">Button 5</button>
            <!--Using hiddne text input typeto pass the data!-->
            <input type = "text" hidden value = "" id = "hidde_val_of_button05" name = "button05" />
            <br/>
            <br/>
            <button type = "submit" style = "height: 50px; width: 100px;background-color:green;">Submit</button>
              <br/>
                 <textarea name = "comment" >Enter your comment here...</textarea>
    </form>
</body>

</html>

action.php

<?php

//FETCH DATA
$date = $_POST['date'];
$option = $_POST['top5'];
$btn01 = $_POST['button01'];
$btn02 = $_POST['button02'];
$btn03 = $_POST['button03'];
$btn04 = $_POST['button04'];
$btn05 = $_POST['button05'];
$comment = $_POST['comment'];

// echo $date."<br/>";
// echo $option."<br/>" ;
// echo $btn01."<br/>" ;
// echo $btn02."<br/>" ;
// echo $btn03."<br/>" ;
// echo $btn04."<br/>" ;
// echo  $btn05."<br/>";

$sql = "INSERT INTO your_table_name(Date,Choice,Button_01,Button_02,Button_03,Button_04,Button_05,comment) VALUES ($date,$option,$btn01,$btn02,$btn03,$btn04,$btn05,$comment) ";

?>

Не используйте этот код как есть. Он уязвим для SQL-инъекций, если этот SQL когда-либо будет выполнен, и может нарушить работу вашего приложения. Используйте подготовленные операторы, если вы собираетесь получить доступ к БД.

Dharman 25.06.2019 12:56

@Dharman, я только что дал ему идею. Он должен знать, как использовать SQL

Nipun Tharuksha 25.06.2019 12:57

@NipunTharuksha Можно ли распечатать на странице, сколько кнопок было нажато для каждого выбора? Например, для выбора 1, даты xx/xx/xxxx, button1 (6x), button2 (9x)… Я хочу показать, сколько раз была нажата каждая кнопка для каждого выбора и даты, для статистики

Astra-Joe 27.06.2019 13:08

@ Astra-Joe Я не понимаю, о чем ты спрашиваешь. Вы имеете в виду, что перед отправкой вы хотите показать, сколько раз была нажата эта кнопка?

Nipun Tharuksha 27.06.2019 13:49

@NipunTharuksha Я упоминаю, что хочу отображать на своей странице данные, хранящиеся в моей базе данных. Теперь я пытаюсь создать базу данных, а затем хочу отобразить сохраненные данные на странице. Может быть, мне следует начать новый вопрос для этого? echo "<tr> <td>Дата</td> <td>Выбор</td>"; echo "<td>Кнопка1</td> <td>Кнопка2</td>"; echo "<td>Кнопка3</td> <td>Кнопка4</td>"; echo "<td>Button5</td> </tr>";

Astra-Joe 27.06.2019 14:06

@ Astra-Joe, вы просите извлечь данные из базы данных и отобразить?

Nipun Tharuksha 27.06.2019 14:07

@NipunTharuksha да, точно! Для этого проекта у меня есть 3 цели, которые я хочу сделать 1. Я хочу получать данные из базы данных и отображать 2. Я хочу сделать счетчик, где я могу видеть, сколько раз какая кнопка была нажата для всех дат и станций, но с кнопка сброса 3. Я хочу, чтобы страница также работала в автономном режиме с помощью автономного приложения Cache. Возможно, это самый простой способ начать с пункта 1.

Astra-Joe 27.06.2019 14:12

@Astra-Joe покажи мне свою текущую базу данных, а я покажу тебе, как извлекать и отображать

Nipun Tharuksha 27.06.2019 14:13

Большое спасибо, я свяжусь с вами сегодня!

Astra-Joe 27.06.2019 14:23

@Astra-Joe Я удалил номер, надеюсь, ты его взял. Однако, если вы предоставите текущую структуру базы данных, я могу предоставить вам код

Nipun Tharuksha 27.06.2019 14:26

@NipunTharuksha Да, спасибо, я сохранил номер! "если вы предоставите текущую структуру базы данных" Вы имеете в виду, что: i.stack.imgur.com/5P696.png?

Astra-Joe 27.06.2019 15:04

@Astra-Joe Сначала разработайте свою БД и связанные таблицы. Так что покажи мне таблицу.

Nipun Tharuksha 27.06.2019 15:24

@NipunTharuksha Привет, я отредактировал свой вопрос и добавил структуру базы данных, это то, что вы хотели, верно? Кстати, у вас есть WhatsApp или аналогичный?

Astra-Joe 01.07.2019 14:25

@Astra-Joe Думаю, у тебя есть мой номер

Nipun Tharuksha 01.07.2019 16:36

@astra-joe В этом посте показано, как извлекать данные из таблицы БД и как их отображать.

This is the DB table I created for testing

db table user Здесь я пытаюсь сначала создать учетные данные БД, а затем через эти учетные данные будет создано соединение.

Затем проверьте подключение и, если подключение не удалось, отобразите ошибку ($conn->connect_error).

Затем я создаю загрузочную таблицу и сначала определяю заголовок таблицы.

Теперь создайте оператор sql для извлечения данных из таблицы БД.

Затем оператор запросить sql с соединением $result

Теперь проверьте количество строк, на которые выводится результат if ($result->num_rows > 0)

Если $result>0, это означает, что данные успешно извлекаются из базы данных. Таким образом, все данные будут зацикливаться в цикле while с таблицей начальной загрузки.

Если $result<0 это означает, что данные не извлекаются, поэтому вывод будет

no data to be fetched.

Check this code

<!DOCTYPE html>
<html>
   <head>
      <meta charset = "utf-8" />
      <meta http-equiv = "X-UA-Compatible" content = "IE=edge">
      <title>Page Title</title>
      <meta name = "viewport" content = "width=device-width, initial-scale=1">
      <link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
         integrity = "sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
         crossorigin = "anonymous">
   </head>
   <body>
      <?php
         $servername  = "localhost";//these credititlas to be updated according to your DB
         $username  = "root";//these credititlas to be updated according to your DB
         $password  = "";//these credititlas to be updated according to your DB
         $dbname  = "astrajoy";//these credititlas to be updated according to your DB
         // Create connection
         $conn =new mysqli($servername, $username, $password, $dbname);

         // Check connection
         if ($conn->connect_error) {
                 die("Connection failed: ". $conn->connect_error);
         }
         ?>
      <!-- Bootstrap table header section. This section shouldnt be repeated. So that I have put it before while loop. -->
      <table
         class = "table table-bordered table-dark">
         <thead>
            <tr>
               <th scope = "col">Index</th>
               <th scope = "col">Date</th>
               <th scope = "col">Choice</th>
               <th scope = "col">Button_01</th>
               <th scope = "col">Button_02</th>
               <th scope = "col">Button_03</th>
               <th scope = "col">Button_04</th>
               <th scope = "col">Button_05</th>
               <th scope = "col">Comment</th>
            </tr>
         </thead>
         <tbody>
            <?php
               $sql  = "SELECT * FROM user";// * mean all in SQL

               //In here query will be excuted with db connetion
               $result = $conn->query($sql);
               // to have a unique ID for a row
               $index =0; 
               //check the result
               if ($result->num_rows>0) {
               // output data of each row
               while($row = $result->fetch_assoc()) {
               $index++;
               ?>
            <!-- Data display will be started from here -->
            <tr>
               <th scope = "row"><?=$index;?></th>
               <td><?=$row['Date'];?></td>
               <td><?=$row['Choice'];?></td>
               <td><?=$row['Button_01'];?></td>
               <td><?=$row['Button_02'];?></td>
               <td><?=$row['Button_03'];?></td>
               <td><?=$row['Button_04'];?></td>
               <td><?=$row['Button_05'];?></td>
               <td><?=$row['comment'];?></td>
            </tr>
            <?php
               }
               } else {
               $conn->close();
               ?>
            <tr>
               <th
                  scope = "row"></th>
               <td
                  colspan = "7">No data available</td>
            </tr>
            <?php
               }
               ?>
         </tbody>
      </table>
   </body>
</html>

Please do update the db table with a field name called comment

This is the final result

final result

Не могли бы вы поделиться файлом SQL для базы данных?

Astra-Joe 02.07.2019 09:19

Другие вопросы по теме