我正在尝试使用 php 和 jquery.php 变量更改 div 的背景图像,但未获取值

Posted

技术标签:

【中文标题】我正在尝试使用 php 和 jquery.php 变量更改 div 的背景图像,但未获取值【英文标题】:I am trying to change a background image of div using php and jquery.php variable not getting the value 【发布时间】:2017-05-30 20:04:15 【问题描述】:

我编写了用于更改 div 的背景图像的代码。我能够上传图像,并且图像在文件夹中可见。图像路径正在上传到 mysql 数据库中。但是图像没有在 div 中显示为背景。指定图像路径的 php 变量值(位置)未传递给 div。谁能告诉我我的错误?

<?php

session_start();

include_once ('dataconnect.php');

$db_conx = mysqli_connect("localhost", "root", "", "productiondata");

$uid = $_SESSION['user_id'];

$username = $_SESSION['user_name'];

if (isset($_FILES['file'])) 

    global $location;

    $imagename = $_FILES["file"]["name"];

    $imagepath = "images/";

    $location = $imagepath . $_FILES["file"]["name"];

    move_uploaded_file($_FILES["file"]["tmp_name"], "$imagepath" . $_FILES["file"]["name"]);


    $sql = "INSERT INTO image(user_id,imagepath,imagename) VALUES('$uid','$imagepath','$imagename')";


    $query = mysqli_query($db_conx, $sql);

    $sql1 = "SELECT * FROM image";


    $query1 = mysqli_query($db_conx, $sql1);

    while ($row = mysqli_fetch_array($query1)) 

        $imagename = $row['imagename'];

        $imagepath = $row['imagepath'];

        echo $location;

    


jquery 代码

$('document').ready(function () 


            $('.js_p-uploader').click(function () 

                $('#file').click();

                $('#file').change(function (e) 

                    e.preventDefault();

                    var blob = this.files[0];

                    var formData = new FormData();

                    formData.append('file', blob);

                    $.ajax(

                       url: "profile.php",

                        type: "POST",

                        data: formData,

                        mimeType: "multipart/form-data",

                        processData: false,

                        contentType: false,

                        success: function (location) 



                        


                    );

                );

            );


        );

div class="profile-cover-wrapper" style="background-image:url('?php echo 

$location ;?');"input type="file" id="file" name ="file"

【问题讨论】:

是由于输入 SO 导致最后一行出现错误,还是代码中实际上缺少 【参考方案1】:

Ajax 调用返回的数据不能在外部使用,或者不能用作 PHP 变量。您可以做的是在success: function() 内更改&lt;img&gt;src 属性:

// AJAX CALL HERE
success: function(location) 
    $('.profile-cover-wrapper').css("background-image", "url("+location+")");

【讨论】:

这不起作用。 ().html() 正在工作,但它显示为图像而不是背景。如果我想将它用作 php 变量如何编码。你有什么例子吗。我在网上搜索了但无法获得。 @SunilKumarReddy 这些在同一个文件中吗? &lt;div class="profile-cover-wrapper" 已经存在于您的 html 文件中了吗?您可以显示您的 HTML 文件,以便我调整答案 嗨,谢谢洛根。它现在工作。更改了一些样式。

以上是关于我正在尝试使用 php 和 jquery.php 变量更改 div 的背景图像,但未获取值的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery、PHP 和 MySQL 为单选按钮加载 JSON 数据

尝试在页面滚动上加载帖子时出现 Ajax/Jquery/PHP 问题

使用 ajax jquery php 和 mysql 制作账单

用 JQuery/PHP 解析嵌套的 JSON 字符串对象?

使用 Jquery、PHP、Mysql 进行 Ajax 分页 [关闭]

jQuery / PHP - 从外部页面嵌入图像