仍在尝试将PHP数组传递给foreach循环内的JQuery函数(进入Bootstrap3模式)

仍在尝试将PHP数组传递给foreach循环内的JQuery函数(进入Bootstrap3模式),php,jquery,arrays,twitter-bootstrap-3,Php,Jquery,Arrays,Twitter Bootstrap 3,我有一个带有foreach循环的php页面。我已经知道如何在循环中正确地将单个变量传递给JQuery函数并使其工作。我在Bootstrap3中工作,并将变量传递到一个模态窗口中。现在我想通过数组来实现它,我被难住了。我已经浏览了互联网和这个网站,我认为我的思路是正确的,但我遗漏了一些东西 PHP和HTML: <?php $mapinfo = array( "pos" => $parkrow['pos'], "name" => $park

我有一个带有foreach循环的php页面。我已经知道如何在循环中正确地将单个变量传递给JQuery函数并使其工作。我在Bootstrap3中工作,并将变量传递到一个模态窗口中。现在我想通过数组来实现它,我被难住了。我已经浏览了互联网和这个网站,我认为我的思路是正确的,但我遗漏了一些东西

PHP和HTML:

 <?php
    $mapinfo = array(
        "pos" => $parkrow['pos'],
        "name" => $parkrow['name'],
        "address" => $parkrow['address'],
        "city" => $parkrow['city'],
        "state" => $parkrow['state'],
        "zip" => $parkrow['zip']
    );
?>
我尝试过在Jquery中进行编码,我尝试过在href中添加一个脚本(我相信这是个坏主意)。我尝试在php文件中对其进行编码,并将其分配给它自己的php变量并传递该变量。我完全被难住了

如果可能的话,我不想做AJAX请求——这方面的开销已经很高了,增加它可能是个问题

下面的对话似乎解决了问题,但当我正确地测试它时,无论我按下哪个按钮,我仍然只从循环中的最后一项获得信息。例如,如果我按下第三个公园的“查看地图”按钮,我就得到了最后一个公园的地图。我还是被难住了

<?php
    $mapinfo = array(
        "pos" => $parkrow['pos'],
        "name" => $parkrow['name'],
        "address" => $parkrow['address'],
        "city" => $parkrow['city'],
        "state" => $parkrow['state'],
        "zip" => $parkrow['zip']
    );
?>
不要在JS文件中编写下面的代码,而是将其写入PHP文件

<script>
var myData = <?php echo json_encode($mapinfo) ?>;
$('#myModal').on('show.bs.modal', function (event) {


 var button = $(event.relatedTarget);
 var mapinfo = myData;

 alert(mapinfo.name);  ..

var myData=;
$('#myModal').on('show.bs.modal',函数(事件){
var按钮=$(event.relatedTarget);
var mapinfo=myData;
警报(mapinfo.name)。。

可能您需要在
'

周围加上单引号,因为.js文件不像.php文件那样由.php引擎预处理,所以您不能像处理普通.php文件那样将php混合到.js文件中

最典型的方法是将php包含在js文件中,只需在.php文件中包含内联js(标签之间的内容),就可以正常工作了。 所以,如果在单个文件中同时使用js或php,那么在.php文件中就不可能使用.js文件`

试试这个你可以解决你的问题

`


您的帕克罗定义

<a href="#myModal" role="button" data-toggle="modal" data-target="#myModal" data-whatever="<?php echo json_encode($mapinfo, JSON_PRETTY_PRINT) ?>"><img src="images/locmaps/<?php echo $parkrow['parkid']; ?>.jpg" alt="map to <?php echo $parkrow['parkid'] ?>" class="img-responsive"></a>

然后使用标记在php文件中编写jquery代码


var myData=;
$('#myModal').on('show.bs.modal',函数(事件){
var按钮=$(event.relatedTarget);
var mapinfo=myData;
警报(mapinfo.name)。。
});

我不明白你的一些回答。“还有你的按钮(无论在哪里都不要写数据)”你在说什么?为什么我要将我的JavaScript从JS文件移动到PHP文件?我尝试了单引号的建议,遗憾的是它没有起作用。
不要在这里写数据
我说的,因为你希望JS变量有一个由PHP生成的值,所以你必须在我分段时将整个JS代码写入PHP文件y我正在尝试这个,但我得到的是我的控制台日志,上面说“$is not defined”用这个加载jquery文件你的链接被切断了。我用的是code.jquery.com/jquery.js”>使用你的链接有什么好处吗?如果有,你能提供整个链接吗?我有一个退路:window.jquery | | document.write(“”)您使用引导模型,但不加载所需的js和css?
<a href="#myModal" role="button" data-toggle="modal" data-target="#myModal" <img src="images/locmaps/<?php echo $parkrow['parkid']; ?>.jpg" alt="map to <?php echo $parkrow['parkid'] ?>" class="img-responsive"></a>
<script>
var myData = <?php echo json_encode($mapinfo) ?>;
$('#myModal').on('show.bs.modal', function (event) {


 var button = $(event.relatedTarget);
 var mapinfo = myData;

 alert(mapinfo.name);  ..
   <?php
    $mapinfo = array(
        "pos" => $parkrow['pos'],
        "name" => $parkrow['name'],
        "address" => $parkrow['address'],
        "city" => $parkrow['city'],
        "state" => $parkrow['state'],
        "zip" => $parkrow['zip']
    );
?>
<a href="#myModal" role="button" data-toggle="modal" data-target="#myModal" data-whatever="<?php echo json_encode($mapinfo, JSON_PRETTY_PRINT) ?>"><img src="images/locmaps/<?php echo $parkrow['parkid']; ?>.jpg" alt="map to <?php echo $parkrow['parkid'] ?>" class="img-responsive"></a>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

<script>
            var myData = <?php echo json_encode($mapinfo) ?>;
            $('#myModal').on('show.bs.modal', function (event) {


             var button = $(event.relatedTarget);
             var mapinfo = myData;

             alert(mapinfo.name);  ..
});
             </script>