提交按钮上的Javascript onclick将输入值存储在php数组中

Javascript onclick on submit button store input value in php array

本文关键字:存储 php 数组 输入 按钮 Javascript onclick 提交      更新时间:2023-09-26

我有一个select输入和另一个submit输入。我想在php数组中存储所选的值,每次点击提交输入都不需要重新加载页面。每次单击add时,它都会将select输入的值存储在php数组中。在第一次点击数组将只有一个值,然后在第二次点击添加php数组将有2个值。

因为我用ajax尝试过,但当我点击两次时,只有第二个值在存储,第一个值被第二个替换。但是我想要数组中的两个值。这是我的代码:Html:

<select id = "exam-list" name = "exam_name">
   <option value="1">Opt 1</option>
   <option value="2">Opt 2</option>
   <option value="3">Opt 3</option>
 </select>
<input class="btn btn-primary" onclick="save_exam()" type="submit" name="submit" value="add"/> 

Js代码:

function save_exam() {var val = document.getElementById('exam-list').value;$.ajax({type: "POST",url: "store_exam.php",datatype: "json",data: 'exam_id=' + val,success: function (data) { }});} 

PHP代码:

<?php $count = count($_POST['exam']);for ($i = 0; $i < $count; $i++)     {print_r($_POST['exam']);}?>

session中创建一个数组,每次单击该数组后都将值放入该数组。我认为没有其他方法可以在点击事件后存储每个值。

 <?php 
$count = count($_POST['exam']);
for ($i = 0; $i < $count; $i++)   
  {
$_SESSION['exam'] = $_POST['exam']; 
}
?>

像这样的东西。

要在不刷新页面的情况下保存所选值,您必须使用AJAX,过程将类似于:

HTML:

<form id="form_id">
    <select id = "exam-list" name = "exam_name">
       <option value="1">Opt 1</option>
       <option value="2">Opt 2</option>
       <option value="3">Opt 3</option>
    </select>
    <input class="btn btn-primary" type="submit" name="submit" value="add"/>
</form>

注意:将您的选择包装在form标签中

JavaScript:

<script>
    $('.btn').on('click',function(e) {
        e.preventDefault();
        var form_date=$('#form_id' ).serializeArray();
        $.ajax({
            url: "ajax.php",
            method: 'GET',
            data: form_date,
            success: function(response) {
                console.log(response);
            }
        });
    });
</script>

在ajax.php或您命名的任何东西上,您都会收到一个传递数据(实际上是表单数据)的$_GET数组。

ajax.php

<?php
$data=$_GET;
 # You will receive a array like this
 #Array(
 #   [exam_name] => 1
 #)
//Do something with the data

若要存储多个值,应将值存储在sessioncookie的数组中。