Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过表单数据和Ajax PHP保存数组_Javascript_Php_Arrays_Ajax_Multipartform Data - Fatal编程技术网

Javascript 如何通过表单数据和Ajax PHP保存数组

Javascript 如何通过表单数据和Ajax PHP保存数组,javascript,php,arrays,ajax,multipartform-data,Javascript,Php,Arrays,Ajax,Multipartform Data,如何通过formdata将multi-select的所有值与文件一起保存。它始终显示foreach的文件无效参数。甚至认为文件已经保存到各自的文件夹中,但多选选项并没有进入foreach并保存到数据库中 警告:foreach中提供的参数无效 我正在使用以下代码 HTML PHP 通过获取likevar test=$sbTwo.val;发送数据。因此,当您从php访问时,它将以字符串形式访问,例如item1、item2。因此,请在循环之前先尝试分解 $test = explode(",",$_PO

如何通过formdata将multi-select的所有值与文件一起保存。它始终显示foreach的文件无效参数。甚至认为文件已经保存到各自的文件夹中,但多选选项并没有进入foreach并保存到数据库中

警告:foreach中提供的参数无效

我正在使用以下代码

HTML

PHP


通过获取likevar test=$sbTwo.val;发送数据。因此,当您从php访问时,它将以字符串形式访问,例如item1、item2。因此,请在循环之前先尝试分解

$test = explode(",",$_POST['test']);

你能在这里显示你的$_postdump数据吗?你的jQuery版本?@MuhammadAkberKhan我得到了multiselect的所有选项值,但它没有通过foreach。我在回显$_POST['test']时得到了准确的数据;我正在使用jquery-1.12.3.min.js。只想检查$\u POST index,键中可能有一些空格?像$u POST['test'],共享此测试索引,我们可以对其进行排序out@Ailyn向我们展示echo如何打印$_POST['test']谢谢。它完全分解数组数据并转换为数组。然后保存,与我预期的结果相同。
function addRecord() {

  var conf = confirm("Are you sure, do you really want to APPROVE this file?");
  if (conf == true) {
    // get values

    $('#sbTwo option').prop('selected', true); //select all data in multiselect
    var test = $("#sbTwo").val();
    var pj_schednum = $('#pj_schednum').val();
    var jspec_filedoc = $('#jspec_filedoc').prop('files')[0];

    var form_data = new FormData();
    form_data.append('jspec_filedoc', jspec_filedoc);
    form_data.append('pj_schednum', pj_schednum);
    alert(form_data.append('test', test));

    $.ajax({
      url: 'ajax/createjob.php',
      dataType: 'text',
      cache: false,
      contentType: false,
      processData: false,
      data: form_data,
      type: 'POST',
      success: function(data) {
        alert(data);
      }
    });
  }
}

$(document).ready(function() {
  $(function() {

    $(document).on('change', ':file', function() {
      var input = $(this),
        numFiles = input.get(0).files ? input.get(0).files.length : 1,
        label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
      input.trigger('fileselect', [numFiles, label]);
    });

    $(document).ready(function() {
      $(':file').on('fileselect', function(event, numFiles, label) {
        var input = $(this).parents('.input-group').find(':text'),
          log = numFiles > 1 ? numFiles + ' files selected' : label;

        if (input.length) {
          input.val(log);
        } else {
          if (log) alert(log);
        }
      });
    });
  });
});
<?php
    if(isset($_POST['pj_schednum']) && isset($_POST['test']) && isset($_FILES['jspec_filedoc']))
    {
        // include Database connection file 
        include("db_connection.php");

        //get current date with 24 hours time format
        date_default_timezone_set('Asia/Manila');
        $a = date('m/d/Y H:i:s'); 
        $b = date('m/d/Y h:i A', strtotime($a));
        $z = date('mdYHis');    

        // get values 
        $file_name3 = explode(".", $_FILES['jspec_filedoc']['name']); 
        $new_name3 = rand() . '.'. $file_name3[1];  
        $sourcePath3 = $_FILES["jspec_filedoc"]["tmp_name"];
        $savethisname3='JT'.$z.$new_name3;        
        $targetPath3 = "../bin/jobs_attachments/docfile/".$savethisname3;  
        move_uploaded_file($sourcePath3, $targetPath3);  


        $i = 0;
        foreach ($_POST['test'] as $operation_processname){  
            echo $operation_processname."\n";

            $operation_step=$i++;//The steps

            $query = "INSERT INTO operation (o_name, o_step, o_doc, o_added) VALUES('$operation_processname', '$operation_step','$savethisname','$b')";
            if (!$result = mysqli_query($db, $query)) {
                exit(mysqli_error());
            }
        }

        echo "1 Record Added!";
    }
?> 
+-----------------------------------+
+o_name| o_step| o_doc| o_added     |
+-----------------------------------+
|PAPER CUP |0 |doc1.docx | 01/11/2017 05:16:45 PM|
|PAPER BOWL|0 |doc2.docx | 01/12/2017 05:16:45 PM|
|PAPER PLATE|0 |doc3.docx | 01/13/2017 05:16:45 PM|
|PAPER BAG|0 |doc4.docx | 01/14/2017 05:16:45 PM|
+------------------------------------------------+
$test = explode(",",$_POST['test']);