使用 jquery AJAX 和 PHP 创建特殊的 JSON 文件

Posted

技术标签:

【中文标题】使用 jquery AJAX 和 PHP 创建特殊的 JSON 文件【英文标题】:Create special JSON file with jquery AJAX and PHP 【发布时间】:2020-02-26 18:41:03 【问题描述】:

我有以下 json 文件格式:

       
"Deutsch":"German",
"Englisch":"English",
"Französisch":"French",
"Spanisch":"Spanish",

现在我想用 php 读取这个文件并在我的网站上的 textareas 中打印它:

$file = '../js/json/en.json';
$json = file_get_contents($file);
$obj = array();
$obj = json_decode($json, true);

$output .= "<table style='width:100%'>";
$output .= "<tr>";
$output .= "<th>German</th>";
$output .= "<th>English</th>";
$output .= "<th>Your Language</th>";
foreach($obj as $key => $val) 
    $output .= "<tr><td><textarea class='german' style='width:100%;' readonly>".$key."</textarea></td><td><textarea class='english' style='width:100%' readonly>".$val."</textarea></td><td><textarea class='new_lang' style='width:100%'></textarea></p></td></tr>";

$output .= "</table>";

到目前为止效果很好。

之后,我需要从上面的两个文本区域中读出内容,并将其写入一个新的格式相同的 json 文件中。到目前为止,这是我遇到问题的部分:

$("#save_translation").on("click", function() 

        let obj = ;
        $(".new_lang").each(function() 
            var te = $(this).parents("tr").find(".german").val();
            var tt = $(this).val();
            obj = ...obj, [te]:tt;
        );
        //console.log(obj);

        $.ajax(
           type: "POST",
           url: "/trans.php",
           dataType: "json",
           data: myData:obj,
           contentType: "application/json; charset=utf-8", // php://input
           success: function(data)   
                console.log("test: ", data);
            
        );

    );

还有 trans.php 文件:

$myArray = $_POST['myData'];
$posts = array();
foreach($myArray as $key => $value) 
    //array_push($posts, $key .":". $value);
    $posts[] = array("$key" => "$value");

var_dump( $myArray);

$fp = fopen('js/json/tfr.json', 'w');
fwrite($fp, json_encode($posts));
fclose($fp);

有没有人有提示如何正确地获得与上述格式相同的格式??

提前致谢。

【问题讨论】:

输出现在的样子 【参考方案1】:

你可以改变

$posts[] = array("$key" => "$value");

$posts[$key] = $value;

【讨论】:

以上是关于使用 jquery AJAX 和 PHP 创建特殊的 JSON 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 php jquery ajax 上传文件和插入数据

如何使用ajax将从jquery for循环创建的输入值发送到php [重复]

使用 PHP、Jquery、AJAX 表单机制和数据库中的数据过滤数据

Ajax拓展02

jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?

创建对 PHP 函数的 jQuery AJAX 请求