Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php选择fetch while循环进入引导模式_Php_Twitter Bootstrap_Modal Dialog - Fatal编程技术网

php选择fetch while循环进入引导模式

php选择fetch while循环进入引导模式,php,twitter-bootstrap,modal-dialog,Php,Twitter Bootstrap,Modal Dialog,有一些数据库信息,我正试图进入一些模态 问题似乎是模态只从最后一个while循环中获取变量。页面上的所有php都先运行吗?即使它没有被呼叫 因此,我知道使用get_results、fetch_array和fetch_row可能有更简单的方法来实现这一点,但在PHP5.5中,这些方法似乎不适用于我 另外,我在某个地方读到了使用AJAX的文章。我以前从未使用过ajax,这是我应该研究的问题吗 <div class="col-md-4"> <?php error_re

有一些数据库信息,我正试图进入一些模态

问题似乎是模态只从最后一个while循环中获取变量。页面上的所有php都先运行吗?即使它没有被呼叫

因此,我知道使用get_results、fetch_array和fetch_row可能有更简单的方法来实现这一点,但在PHP5.5中,这些方法似乎不适用于我

另外,我在某个地方读到了使用AJAX的文章。我以前从未使用过ajax,这是我应该研究的问题吗

<div class="col-md-4">
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    require ($_SERVER['DOCUMENT_ROOT'].'/db-connect.php');
    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    //echo $conn->host_info . "\n";

    if ($stmt = $conn->prepare("SELECT time, title, tool, descript, thumbpath, smallpath, mediumpath, largepath FROM websites ORDER BY id DESC LIMIT 1")){

        //$stmt->bind_param('s',$id);
        $stmt->execute();
        $stmt->store_result();
        $stmt->bind_result($time, $title, $tool, $descript, $thumbpath, $smallpath, $mediumpath, $largepath);

        while ($stmt->fetch()) {


        }

        $stmt->free_result();
        $stmt->close();
    }

    $conn->close();
    ?>

    <img class="img-responsive" title="<?php echo $tool; ?>" data-toggle="modal" data-target="#modalPort" sizes="100vw" src="<?php echo $thumbpath; ?>" srcset="<?php echo $smallpath; ?> 500w, <?php echo $mediumpath; ?> 1000w, <?php echo $largepath; ?> 1500w" alt="Portfolio Site">
    <span class="time line-height-small"><?php echo $time; ?></span>
</div>
变量在这里,工作正常。问题是,我使用相同的bind_结果变量运行了几次相同的php脚本。我真的不想改变每个模式的变量

模态:


一种方法是在$stmt->fetch{}同时分配模态触发器按钮和模态本身的唯一id时,将模态放入其中

注意模态触发器按钮中的数据target=modalPort和模态HTML中的id=modalPort

<?php while ($stmt->fetch()) { ?>
    <button data-toggle="modal" data-target="#modalPort<?php echo $id;?>" class="btn btn-default">Modal</button>

    <div class="modal fade" id="modalPort<?php echo $id;?>" tabindex="-1" role="dialog" aria-labelledby="portfolioModallabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title" id="portfolioModallabel"><?php echo $title; ?></h4>
            </div>
            <div class="modal-body text-center">
                <img class="img-responsive center-block" src="<?php echo $thumbpath; ?>" sizes="100vw" srcset="<?php echo $smallpath; ?> 500w, <?php echo $mediumpath; ?> 1000w, <?php echo $largepath; ?> 1500w" alt="Portfolio Site">
                <p class="line-height-small"><?php echo $descript; ?></p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
  </div>
<?php } ?>
Modal listener获取数据属性值,然后在Ajax方法中使用,以获取要在Modal中显示的相应行数据

$(document).ready(function(){
    $('#modalPort').on('show.bs.modal', function (e) {
        var dataid = $(e.relatedTarget).data('id');
        var dataString = 'dataid=' + dataid;
        $.ajax({
            type: "POST",
            url: "get_data.php",
            data: dataString,
            cache: false,
            success: function(data){
                $("#content").html(data);
            }
        });
     });
});
get_data.php将是

<?php
    //Include database connection
    if($_POST['dataid']) {
    //run query against `dataid`
?>
    <div class="modal-header">
        <h4 class="modal-title" id="portfolioModallabel"><?php echo $title; ?></h4>
    </div>
    <div class="modal-body text-center">
        <img class="img-responsive center-block" src="<?php echo $thumbpath; ?>" sizes="100vw" srcset="<?php echo $smallpath; ?> 500w, <?php echo $mediumpath; ?> 1000w, <?php echo $largepath; ?> 1500w" alt="Portfolio Site">
        <p class="line-height-small"><?php echo $descript; ?></p>
    </div>
    <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    </div>
<?php } ?>
模式HTML将在循环之外

<div class="modal fade" id="modalPort" tabindex="-1" role="dialog" aria-labelledby="portfolioModallabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
             <div id="content"></div> //display data output via ajax
        </div>
    </div>
</div>

非常感谢你的帮助,Shehary!
<?php
    //Include database connection
    if($_POST['dataid']) {
    //run query against `dataid`
?>
    <div class="modal-header">
        <h4 class="modal-title" id="portfolioModallabel"><?php echo $title; ?></h4>
    </div>
    <div class="modal-body text-center">
        <img class="img-responsive center-block" src="<?php echo $thumbpath; ?>" sizes="100vw" srcset="<?php echo $smallpath; ?> 500w, <?php echo $mediumpath; ?> 1000w, <?php echo $largepath; ?> 1500w" alt="Portfolio Site">
        <p class="line-height-small"><?php echo $descript; ?></p>
    </div>
    <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    </div>
<?php } ?>
<div class="modal fade" id="modalPort" tabindex="-1" role="dialog" aria-labelledby="portfolioModallabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
             <div id="content"></div> //display data output via ajax
        </div>
    </div>
</div>