繁体   English   中英

从另一个ajax函数获取json编码数据

[英]Get json encode data from another ajax function

我正在使用 prestashop 1.6,我有一个 ajax 函数,我在其中编码了一些我在控制台上使用echo成功检索到的数据。 现在我必须在另一个 ajax 函数中解码这个 json 数据以获得特定变量的值。 抱歉,我是 prestashop 1.6 的新手。

我的第一个 ajax 函数:

public function ajaxProcessAddQrVideo(){

    $target_dir = _PS_IMG_DIR_.DS.'video_qr';

    $id_product = Tools::getValue('id_product');

    $stamp = strtotime('now');
    $filename = 'video_qr_'.$id_product.'_'.$stamp.'.jpg';
    $target_file = $target_dir.DS.$filename;

    $upload = $_FILES['video_qr_attachment_file'];

    $err = array();
    $uploaded = false;

    if($upload['type'] !='image/jpeg'){
        array_push($err,"Veuillez entrer un fichier JPG");
    }

    if(empty($err)){
        $uploaded = @move_uploaded_file($upload['tmp_name'], $target_file);
        $this->context->smarty->assign('uploaded', $uploaded);
        $this->context->smarty->assign('filename', $filename);




    }
    $this->json =array(
        'uploaded'=>$uploaded,
        'err'=>$err,
        'id_product'=>$id_product,
        'stamp'=>$stamp,
        'file_name'=>$filename,
    );

     echo json_encode($this->json);


    exit;


}

我想在我的第二个 ajax 函数中获取 'file_name' 的值:

 public function ajaxProcessAddVideo(){

    $img_path = json_decode($this->json,true);
    $filename = $img_path['file_name'];
    $id_lang = Context::getContext()->language->id;

    $script = Tools::getValue('script');
    $id_product = Tools::getValue('id_product');
    $id_group_vid = Tools::getValue('cust_group');
    //add qr_code video
    $qr_code =$filename;

    $err = true;
    $insert = false;
    $videos = array();

    $vid = new MpsVideo();
    $vid->id_product = $id_product;
    $vid->url  = $script;
    $vid->cust_group = $id_group_vid;
    $vid->date_add = date('Y-m-d H:i:s');
    $vid->active = 1;
    $vid->qrcode = $qr_code;

    $is_existing = Db::getInstance()->getValue("SELECT COUNT(id_mps_video) FROM `ps_mps_video` WHERE id_product=$id_product AND url = '$script'");


    if($is_existing==0){
        $insert = $vid->save();

        $id_group = explode(',',$id_group_vid);
        $group_name = array();

        foreach($id_group as $k){
            $group = new Group($k);
            $group_name[] = $group->name[$id_lang]; 
        }

        $vid->group_names = implode('<br/>',$group_name);
    }

    echo json_encode(array(
        'err'=>$err,
        'video_exists'=>$is_existing,
        'insert'=>$insert,
        'vid'=>$vid,
    ));

    exit;

}

我不知道如何实现这一目标,但我知道这是可能的。 如果有人能帮助理解这一点,我将不胜感激。

第一个函数的结果是一个 json,该结果必须从另一个文件中读取,然后传递给您的第二个函数。 否则相同的函数应该读取该 json:

$data = file_get_contents("file/file_json_result.php");
$img_path = json_decode($data, true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM