Javascript 使用jquery和php更新img

Javascript 使用jquery和php更新img,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我试图在不使用ajax和php刷新页面的情况下更新img封面,但它根本不起作用 HTML <div class="cover" > <img id="b1" src="<?php echo $user->picture_path();>"class="cover"/> <div id="modal-cover" class="cov-lo"> </div>

我试图在不使用ajax和php刷新页面的情况下更新img封面,但它根本不起作用

HTML

  <div class="cover" >
  <img  id="b1"  src="<?php echo $user->picture_path();>"class="cover"/>          
                <div id="modal-cover" class="cov-lo">        </div>
   </div>

图片_路径();>“class=”cover“/>
js

$('#b2').on({
    'click': function(){ 
     $('#b1').attr('src', <?php echo $user->picture_path();?> + '?' + new Date().getTime());}
});
   <form  action="profile.php" method="POST" enctype="multipart/form-data"  > 
            <div class="hio"> 
                                        Upload                                   <input  type="file" onchange="this.form.submit()" name="cover" id="bla2"class="custom-file-input" /> 
 </div> 
             </form>
$('#b2')。在({
“单击”:函数(){
$('#b1').attr('src',+'?'+新日期().getTime());}
});
输入和表单

$('#b2').on({
    'click': function(){ 
     $('#b1').attr('src', <?php echo $user->picture_path();?> + '?' + new Date().getTime());}
});
   <form  action="profile.php" method="POST" enctype="multipart/form-data"  > 
            <div class="hio"> 
                                        Upload                                   <input  type="file" onchange="this.form.submit()" name="cover" id="bla2"class="custom-file-input" /> 
 </div> 
             </form>

上传

我认为您对PHP和HTML的解释有一个基本的误解:

  • PHP是为web开发设计的服务器端脚本语言(请参阅)。这意味着PHP代码在到达浏览器之前在服务器上执行

  • HTML被浏览器解释为纯文本。浏览器中不执行任何PHP。

  • 因此,一旦JS进入浏览器,
    echo$user->picture_path();
    已经被执行,并被浏览器解释为纯文本

    一旦你的JS进入浏览器,它将如下所示:

    $('#b2').on({
        'click': function() {
            $('#b1').attr('src', '/the/path/to/the/picture' + '?' + new Date().getTime());
        }
    });
    

    Ajax看起来更像这样:

    js/jQuery:

    $(document).on({'click', '#b2', function(){ 
        $.ajax({
            type: 'post',
             url: 'my_ajax_processor_file.php',
            data: '',
            success: function(data){
                $('#b1').attr('src', data);
            }
        }); //END ajax
    
    }); //END #b2.click
    
    <?php 
        $dt = new Date().getTime();
        $pp = 'get user picture path here';
        echo $pp .' - '. $pp;
    
    my\u ajax\u processor\u file.php:

    $(document).on({'click', '#b2', function(){ 
        $.ajax({
            type: 'post',
             url: 'my_ajax_processor_file.php',
            data: '',
            success: function(data){
                $('#b1').attr('src', data);
            }
        }); //END ajax
    
    }); //END #b2.click
    
    <?php 
        $dt = new Date().getTime();
        $pp = 'get user picture path here';
        echo $pp .' - '. $pp;
    

    输入bla2中的旧id是正确的,即使使用正确的id也无法工作friend@HossamElddinMagdy请更新您的问题并说明清楚。“不工作”是什么意思?您检查过JS控制台吗?尽管您是对的,但我感觉情况并非如此,因为
    +'?'+new Date().getTime()
    最后。我假设这是一种保证新图像的方法。不过,我可能是错的,这部分毫无意义。想看看OP在哪里使用了你的代码吗?我以完全相同的方式关闭了它。@Fred ii-谢谢。