Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
如何将POST参数从javascript发送到php_Php_Jquery - Fatal编程技术网

如何将POST参数从javascript发送到php

如何将POST参数从javascript发送到php,php,jquery,Php,Jquery,我在将POST参数从javascript发送到php页面时遇到问题。所有的脚本工作正常,但我需要进一步的行动后参数。在php$\u中,POST数组总是显示为空。我做错了什么?以下是我目前的代码: HTML: 选择图像 Javascript: $(document).ready(function(){ $(document).on('change', '#file', function(){ var name = document.getElementById("file&

我在将POST参数从javascript发送到php页面时遇到问题。所有的脚本工作正常,但我需要进一步的行动后参数。在php$\u中,POST数组总是显示为空。我做错了什么?以下是我目前的代码:

HTML:


选择图像


Javascript:

$(document).ready(function(){
$(document).on('change', '#file', function(){
    var name = document.getElementById("file").files[0].name;
    var form_data = new FormData();
    var ext = name.split('.').pop().toLowerCase();

    if(jQuery.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
        alert("Invalid Image File");
    }
    var oFReader = new FileReader();
    oFReader.readAsDataURL(document.getElementById("file").files[0]);
    var f = document.getElementById("file").files[0];
    var fsize = f.size||f.fileSize;
    if(fsize > 2000000) {
        alert("Image File Size is very big");
    }
    else {
        form_data.append("file", f);
        $.ajax({
            url:"upload.php",
            method:"POST",
            data: form_data,
            contentType: false,
            cache: false,
            processData: false, 
            beforeSend:function(){
                $('#uploaded_image').html("<label class='text-success'>Image Uploading...</label>");
            },
            success:function(data) {
                $('#uploaded_image').html(data);
            }
        });
    }
});
});
$(文档).ready(函数(){
$(document).on('change','#file',function(){
var name=document.getElementById(“文件”).files[0]。名称;
var form_data=new FormData();
var ext=name.split('.').pop().toLowerCase();
if(jQuery.inArray(ext、['gif'、'png'、'jpg'、'jpeg'])==-1){
警报(“无效图像文件”);
}
var of reader=new FileReader();
readAsDataURL(document.getElementById(“文件”).files[0]);
var f=document.getElementById(“文件”).files[0];
var fsize=f.size | | f.fileSize;
如果(fsize>2000000){
警报(“图像文件大小非常大”);
}
否则{
表格_data.append(“文件”,f);
$.ajax({
url:“upload.php”,
方法:“张贴”,
数据:表格数据,
contentType:false,
cache:false,
processData:false,
beforeSend:function(){
$(“#上传的_图像”).html(“图像上传…”);
},
成功:功能(数据){
$('#上传的"图像').html(数据);
}
});
}
});
});
和PHP:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_FILES['file'])) {
    $errors = [];
    $extensions = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
    echo '$_FILES array: ';
    print_r(array_values($_FILES));
    echo '<br>';
    echo '$_POST array: ';
    print_r(array_values($_POST));
    echo '<br>';
}
// rest of code
}
if($\u服务器['REQUEST\u METHOD']='POST'){
如果(isset($\u文件['file'])){
$errors=[];
$extensions=['jpg','jpeg','png','gif','pdf'];
回显“$\u文件数组:”;
打印(数组值($文件));
回声“
”; 回显“$”后数组:”; 打印(数组值($_POST)); 回声“
”; } //代码的其余部分 }
请将以下内容另存为文件:upload.php在http服务器(例如xampp)文件夹中 然后在浏览器上打开

<html> 
<body>

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_FILES['file'])) {
        $errors = [];
        $extensions = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
        echo '$_FILES array: ';
        print_r(array_values($_FILES));
        echo '<br>';
        echo '$_POST array: ';
        print_r(array_values($_POST));
        echo '<br>';
    }
    // rest of code
    }
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
    $(document).ready(function(){
    $(document).on('change', '#file', function(){
    var name = document.getElementById("file").files[0].name;
    var form_data = new FormData();
    var ext = name.split('.').pop().toLowerCase();

    if(jQuery.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
        alert("Invalid Image File");
    }
    var oFReader = new FileReader();
    oFReader.readAsDataURL(document.getElementById("file").files[0]);
    var f = document.getElementById("file").files[0];
    var fsize = f.size||f.fileSize;
    if(fsize > 2000000) {
        alert("Image File Size is very big");
    }
    else {
        form_data.append("file", f);
        $.ajax({
            url:"./upload.php",
            method:"POST",
            data: form_data,
            contentType: false,
            cache: false,
            processData: false, 
            beforeSend:function(){
                $('#uploaded_image').html("<label class='text-success'>Image Uploading...</label>");
            },
            success:function(data) {
                $('#uploaded_image').html(data);
            }
        });
    }
});
});

</script>

    <div class="container" style="width:700px;">
        <label>Select Image</label>
        <input type="file" name="file" id="file" />
        <br /><br />
        <span id="uploaded_image"></span>
    </div>

</body>
</html>

我确定了你的头衔。Java和Javascript之间有很大的区别,你所做的就是发送一个文件。它们不会出现在
$\u POST
-数组中。它们位于
$\u文件
数组中(您也会转储该数组)。里面有什么?谢谢你的修复。我对编码很陌生,所以我得学很多。下面是关于我的问题的更多细节。
<html> 
<body>

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_FILES['file'])) {
        $errors = [];
        $extensions = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
        echo '$_FILES array: ';
        print_r(array_values($_FILES));
        echo '<br>';
        echo '$_POST array: ';
        print_r(array_values($_POST));
        echo '<br>';
    }
    // rest of code
    }
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
    $(document).ready(function(){
    $(document).on('change', '#file', function(){
    var name = document.getElementById("file").files[0].name;
    var form_data = new FormData();
    var ext = name.split('.').pop().toLowerCase();

    if(jQuery.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
        alert("Invalid Image File");
    }
    var oFReader = new FileReader();
    oFReader.readAsDataURL(document.getElementById("file").files[0]);
    var f = document.getElementById("file").files[0];
    var fsize = f.size||f.fileSize;
    if(fsize > 2000000) {
        alert("Image File Size is very big");
    }
    else {
        form_data.append("file", f);
        $.ajax({
            url:"./upload.php",
            method:"POST",
            data: form_data,
            contentType: false,
            cache: false,
            processData: false, 
            beforeSend:function(){
                $('#uploaded_image').html("<label class='text-success'>Image Uploading...</label>");
            },
            success:function(data) {
                $('#uploaded_image').html(data);
            }
        });
    }
});
});

</script>

    <div class="container" style="width:700px;">
        <label>Select Image</label>
        <input type="file" name="file" id="file" />
        <br /><br />
        <span id="uploaded_image"></span>
    </div>

</body>
</html>
Select Image 

$_FILES array: Array ( [0] => Array ( [name] => zc.jpg [type] => image/jpeg [tmp_name] => C:\xampp\tmp\php9437.tmp [error] => 0 [size] => 17436 ) )
$_POST array: Array ( )