Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
Php 为什么每次都要附加数字0和1_Php_Javascript_Json - Fatal编程技术网

Php 为什么每次都要附加数字0和1

Php 为什么每次都要附加数字0和1,php,javascript,json,Php,Javascript,Json,我试图在变量imagename后面附加一个数字,但它没有显示文件名,而是先附加数字“0”,然后再附加数字“1”。我想知道为什么它会附加这些数字而不是文件名?imagename变量循环遍历imageNameArray变量,该变量包含一个$\u会话变量,用于检索已上载文件的名称,该$\u会话变量从上载文件的php脚本中检索 下面是发生追加的javascript代码: function stopImageUpload(success){ var imageNameArray = <?php

我试图在变量imagename后面附加一个数字,但它没有显示文件名,而是先附加数字“0”,然后再附加数字“1”。我想知道为什么它会附加这些数字而不是文件名?imagename变量循环遍历imageNameArray变量,该变量包含一个$\u会话变量,用于检索已上载文件的名称,该$\u会话变量从上载文件的php脚本中检索

下面是发生追加的javascript代码:

  function stopImageUpload(success){

var imageNameArray = <?php echo json_encode(isset($_SESSION ['fileImage']) ? $_SESSION ['fileImage'] : null); ?>;
 var result = '';



if (success == 1){
result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
for (imagename in imageNameArray)
            {
$('.listImage').append(imageNameArray[imagename]+ '<br/>');

             }

              }
 else {
 result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
              }

 return true;   
 }
函数stopImageUpload(成功){
var imageNameArray=;
var结果=“”;
如果(成功==1){
结果='文件已成功上载!

'; for(imageNameArray中的imagename) { $('.listImage').append(imageNameArray[imagename]+'
'); } } 否则{ 结果='上传文件时出错!

'; } 返回true; }
下面是php脚本,在该脚本中上载文件,$\u会话变量检索其文件名:

 <?php

    session_start();

    $result = 0;
    $errors = array ();
    $dirImage = "ImageFiles/";


if (isset ( $_FILES ['fileImage'] ) && $_FILES ["fileImage"] ["error"] == UPLOAD_ERR_OK) {

$fileName = $_FILES ['fileImage'] ['name'];

$fileExt = pathinfo ( $fileName, PATHINFO_EXTENSION );
$fileExt = strtolower ( $fileExt );


$fileDst = $dirImage . DIRECTORY_SEPARATOR . $fileName;

        if (count ( $errors ) == 0) {
            if (move_uploaded_file ( $fileTemp, $fileDst )) {
                $result = 1;


            }
        }

    }

$_SESSION ['fileImage'][] = $_FILES ['fileImage']['name'];

    ?>

<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result;?>);</script>

window.top.stopImageUpload();
因为
for(数组中的var)
迭代数组的索引。你应该做什么

$('.listImage').append(imageNameArray[imagename] + '<br/>');
$('.listImage').append(imageNameArray[imagename]+'
');
因为在数组上使用
for in
循环,
imageName
将等于数组索引,而不是其值。很像(窗口中的i)的
,我将列出窗口对象的所有方法和属性


由于这是一个数组,我强烈建议您使用
for(I=0;iHi,当您说您强烈建议使用:
for(I=0;我刚刚意识到,如果我上传一个文件(dog.png),那么它会附加文件名dog.png,这很好,但是如果我上传文件cat.png,它会再次附加文件名dog.png,这是为什么(i=0;我可以发布你正在使用的代码吗?或者只是做一个
console.log(imageNameArray)
来查看数组中的内容我更新了上面的代码以显示我正在使用的代码,我已经将循环保留到原来的状态,因为当我尝试:
for(i=0;我刚刚意识到如果我上传一个文件(dog.png),然后它会附加文件名dog.png,这很好,但是如果我上传文件cat.png,它会再次附加文件名dog.png,这是为什么?
$('.listImage').append(imagename + '<br/>');
$('.listImage').append(imageNameArray[imagename]+ '<br/>');
$('.listImage').append(imageNameArray[i]+ '<br/>');
for(var i=0;i<imageNameArray.length;i++)
{
    $('.listImage').append(imageNameArray[i]+ '<br/>');
}