gpt4 book ai didi

javascript - 将 php 数组传递给 PHP 函数内的 javascript 数组

转载 作者:行者123 更新时间:2023-11-30 09:34:31 24 4
gpt4 key购买 nike

我知道这个问题在 StackOverflow 上被问了很多,尽管我找不到任何可以应用于我的问题的解决方案。

我在一个平台上工作,该平台重新组合了我公司的所有视频和图片(我正在收回我前同事的项目),我的问题是显示图片的灯箱。

我有一个 PHP 函数,它以字符串格式返回 HTML/CSS/Javascript,如下所示:

$block = '<div id="myModal" class="modal" style="margin:auto">'
.'<span style="float:right;margin-right:33px"><a href="'.HTTP_IHM_PATH.'Suppression.php?id='.$records[$i]['Access_Key'].'" onclick="return confirm(\'Êtes-vous sûr de vouloir continuer cette suppression ? Elle sera définitive.\');"><img src="'.HTTP_IMG_PATH.'corbeille.jpg" style="width:20px;height:auto;"></a></span>'
.'<span class="close cursor" onclick="closeModal()" style="color:#585858; font-size:60px;float:right;">&times;</span>'
[...]
return $block;

我这样调用函数:<?php echo function() ?>

在这里,我有一个 PHP 数组 $records包含有关我要在我的灯箱中显示的图片的所有信息,我希望稍后在我的代码中将这些信息用于我的 javascript 函数。

我听说我可以使用 <script>var records = <?php json_encode($records) ?></script> 转换 javascript 中的数组但它不起作用!

最后我想做的是当用户点击图片时,它会打开我的灯箱,对于他正在观看的每张图片,我想调用我的 php 函数 UpdateViews()将图片的浏览次数加 1。

我尝试过使用 Ajax,但由于它对我来说很新,所以我可能会犯一些愚蠢的错误(这在变量 $block 中仍然是字符串格式):

$block .= '//getSlideIndex returns slideIndex wich is the id of the <img/>
$(\'#\' + getSlideIndex()).on(\'click\', function (){
alert("Ok onclick" + records[getSlideIndex()]["Access_Key"];
//"Access_Key" is the property I need (primary key of the table)
$.ajax({
type:\'GET\',
url: \'/picture.php\',
data: {id=\' + records[getSlideIndex()]["Access_Key"] + \'},
success: function(data){
alert(\'success\' + data);
},
error: function(exception){
alert(\'Exception: \' + exception);
}
});
e.preventDefault();
});';

注意:我的前同事已经在他的代码中使用了一些 Ajax,所以当我在这个页面上时,一个 $_GET已经设置:在这种情况下我能否使我的 ajax 工作?

谢谢你读到这里,希望你能帮助我走上正轨。

最佳答案

I've heard that I can translate the array in javascript by using <script>var records = <?php json_encode($records) ?></script> but it doesn't work !

那行不通,因为你没有 echo结果,您只是运行 JSON 进程,然后丢弃结果。添加 echo :

<script>var records = <?php echo json_encode($records) ?></script>

与其他答案相反,不要尝试 JSON.parse这是因为它已经是一个有效的 JavaScript 对象。

编辑:如果您尝试将 JSON 连接到响应字符串,则不要使用 <?php标签,相反你可以这样做:

$block .= '<script>var records = ' . json_encode($records) . '; </script>';

关于javascript - 将 php 数组传递给 PHP 函数内的 javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44392525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com