Ajax、JQuery&;PHP-将PHP变量传递给JQuery

Ajax、JQuery&;PHP-将PHP变量传递给JQuery,php,jquery,ajax,Php,Jquery,Ajax,我有一个页面,允许用户上传多个文件并预览它们,而无需使用jquery刷新页面。在php中,我为每个文件名生成一个唯一的文件id,然后将其传递回JQuery,并使用它加载预览图像等 我希望我已经解释清楚了 谢谢你的指点 PHP代码: // php code to upload file and generate unique file id. then... if (move_uploaded_file($main_image, $file)) { echo "succ

我有一个页面,允许用户上传多个文件并预览它们,而无需使用jquery刷新页面。在php中,我为每个文件名生成一个唯一的文件id,然后将其传递回JQuery,并使用它加载预览图像等

我希望我已经解释清楚了

谢谢你的指点

PHP代码:

   // php code to upload file and generate unique file id. then...

   if (move_uploaded_file($main_image, $file)) { 
      echo "success"; 
      echo $file_id; // <--- I WANT TO PASS THIS VARIABLE BACK IN TO JQUERY
    } else {
        echo "error";
    }
//上载文件并生成唯一文件id的php代码。然后。。。
如果(移动上传的文件($main_image,$file)){
呼应“成功”;

echo$file_id;//最简单的方法是允许返回多个值:

// Make a variable to hold data to send back and keep track of your separator
$data = '';
$separator = 1;
// Put this in a loop, your loop will depend on how many file uploads you have
// I did not do the loop for you
if (move_uploaded_file($main_image, $file)) { 
  // echo "success"; Take this out
  if ($separater==1){
      $data .= $file_id;
  } else {
      $data .= ','.$file_id;
  }
  $separater++;
}
// Now outside the loop echo the results back
echo $data;
有了这些信息,您可以使用Javascript(Jquery)对其进行操作。只需使用类似于spli(“,”)的东西;它将为您提供所需的文件名数组


如果您只希望返回一个值,这意味着您只有一个文件id要发送回foregt,那么有关循环和PHP的所有信息如下:

if (move_uploaded_file($main_image, $file)) { 
// echo "success"; Take this out
$data = $file_id;
// Now echo the results back
// Its been a while since I've done this but there may be times its ok to use return
echo $data;
} else {
// Handel error here
echo "error";
}
现在,根据您的代码,应在此处拾取并处理这些回显信息:

onComplete: function(file, response){ ... }
您需要更改代码以查找文件id或类似错误的内容,而不是查找“成功”,例如:

我对获取多个值进行了详细解释的原因是,当您开始制作更高级的表单时,这种情况更为常见,现在使用也不会有什么坏处。例如,通过这种方式,您可以允许多个文件上载。例如,当使用AJAX时,我所做的是回显如下内容:

1::value,value,value
现在我只是将其拆分为数组,首先是by::,然后是by,例如,这一行表示没有发生错误(1,我们知道这也是正确的),这是您的数据:value,value,value,您现在可以将其用于Jquery中的内容,或者只打印到文档中

您应该查看,它解释了返回结果时遇到的问题。请特别查看.done.success.complete。

在您的PHP中:

$response = array('result' => 'success', 'file_id' => $file_id);
echo json_encode($response);
在jQuery中:

var obj = $.parseJSON(response);

然后用
if(obj.result='success')
检查响应是否成功,然后用
obj.file\u id

返回类似
{status:value,file\u id:value}的内容获取文件id
使用json。检查状态是否有效,如果您有从Hi charlietfl创建图像的id,我对JQuery和json都有点不熟悉。如果您有时间,可以详细说明一下吗?谢谢。DBsimple php数组和
echo json_encode($outputArray);
对不起,我不确定我是否理解,或者我没有正确地解释自己。我只需要知道如何让我的外部php文件返回一个变量,以便在我的jquery代码中使用。我必须使用php生成一个唯一的文件id,因为用户从iphone上传的文件都标题为“image.jpg”这导致了一些问题,因此需要生成唯一的文件名。我希望这次我能解释得更好。感谢您迄今为止的帮助,希望您能多帮我一点忙:)@DingoBruce-我更新了我的答案,以便解释得更多,回答得更具体。注意水平线。
$response = array('result' => 'success', 'file_id' => $file_id);
echo json_encode($response);
var obj = $.parseJSON(response);