【问题标题】:Javascript onclick on submit button store input value in php arrayJavascript onclick提交按钮将输入值存储在php数组中
【发布时间】:2016-04-19 11:31:54
【问题描述】:

我有一个选择输入和另一个提交输入。我想将选定的值存储在一个 php 数组中,每次点击提交输入而不重新加载页面。 每次单击添加时,它将选择输入的值存储在 php.ini 数组中。 第一次单击该数组将只有一个值,然后在第二次单击添加 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']);}?>

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

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

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

    类似的东西。

    【讨论】:

      【解决方案2】:

      要在不刷新页面的情况下保存选定的值,您必须使用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
      

      【讨论】:

      • 将 [exam_name] 包含多个值。我的意思是每次我点击添加时它会与前一个值一起存储新值吗?
      • 每次点击提交按钮,都会进行一次AJAX请求,并将选择值传递给ajax页面。
      • 当我在 ajax 页面中单击提交按钮时,它会覆盖以前的值。单击提交按钮后如何存储所有值?
      • 将值保存到数据库。
      • 我想在一次查询中添加所需的选项后保存。
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-18
        • 1970-01-01
        • 1970-01-01
        • 2018-01-20
        • 1970-01-01
        • 2021-09-10
        • 2016-12-04
        • 1970-01-01
        相关资源
        最近更新 更多