javascript - 在不同文件之间将数据从 php 发送到 javascript

标签 javascript php jquery ajax

我有一个login.php、一个main.php、一个functions_js.js和一个functions_php.php(我也使用jquery)。

我的问题是我需要从login.php中获取两个变量并将其发送到functions_php.php(ajax,好的,可以工作),但是然后在functions_php.php中我进行查询选择(使用这个变量),它返回我一个我在functions_js.js上需要的数组,在这个文件中我有一个在main.php上插入图像的函数。 我不知道如何将数组从functions_php传递到functions_js.js。 我读过我可以使用 json,但我不知道如何在两个不同的文件之间使用。

我尝试使用 json 并将其传递给 main.php 但没有效果:

functions_php.php:

if (isset($_POST['user'])) {
    function startPerson($nick,$pass){
        $query = $conexion->query('SELECT archive_id FROM family WHERE family_id=(select distinct family_id from person where user_id = (select user_id from user where user_name="'.$nick.'" and password="'.$pass.'"))');
        $query->execute();

        while ($res = $query->fetch()) {
            $id = $res['archive_id']; //archive_id
        }
        //coger las personas de las familias de ese archive_id
        $query = $conexion->query('SELECT person_id, birth_date FROM person WHERE family_id in (select family_id from family where archive_id='.$id.')');
        $query->execute();
        while ($res = $query->fetch()) {
            $person[] = $res[0]; //archive_id
            $date[]=$res[1];
        }
        return array($person, $date); 
    }

    header('Content-Type: application/json');
    $encoded=json_encode(startPerson($_POST['user'],$_POST['pass']));
    echo $encoded;
 }

main.php:

<?php
$json_data=json_encode($encoded);
?>
<script>
var an_obj= <?php echo $json_data;?> ;
alert(an_obj);//returns null
</script>

function_js.js:

 function startPerson (date) {
 for(i=0;i=>date.length;i++){
    var elem = date[i].split('-');
    var mon= elem[1]; //month
    var year=elem[0]; //year
    var mont= num2mon(mon);
    position(year,mont);
 elem=" ";
 mon=" ";
 year=" ";
 }
}
function position(year, mon)
{
    $('#' + year + ' .' + mon).prepend('<img class="black_point" src="./images/circle.png"/>');    
}

最佳答案

您是否尝试过更改:

var an_obj= <?php echo $json_data;?> ;

至:

var an_obj = "<?php echo $json_data;?>";

记住,变量是一个字符串。

您也可以尝试对 $encoded 进行回显吗?

关于javascript - 在不同文件之间将数据从 php 发送到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30792109/

相关文章:

javascript - 无法选择网格中的六边形

javascript - 类型错误 : Cannot read property 'push' of undefined [VueJs]

javascript - 以编程方式更改 Highmaps 中的形状颜色

php - 在 Magento 中使用缩略图切换基本图像

asp.net - 显示从 json post 调用返回的文本

javascript - 什么是 block 作用域函数ECMAScript 6与ECMAScript 5的比较

php - 返回唯一ID

php - 获取不同日期的数据

javascript - Ajax POST 工作,但 php 文档无法获取数据变量

javascript - 如何使用 Javascript 控制克隆的 <div> 的 css?