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

时间:2016-04-19 11:31:55

标签: javascript php jquery ajax

我有一个带有另一个提交输入的选择输入。我希望将所选值存储在php数组中,每次单击提交输入而不重新加载页面。 在点击添加每次它将存储选择输入的值在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']);}?>

3 个答案:

答案 0 :(得分:2)

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

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

像这样。

答案 1 :(得分:1)

要保存所选值而不刷新页面,您必须使用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

答案 2 :(得分:0)

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