【问题标题】:Update img with jquery and php用 jquery 和 php 更新 img
【发布时间】:2016-04-08 18:39:24
【问题描述】:

我正在尝试更新 img 封面而不使用 ajax 和 php 刷新页面,但它根本不起作用

HTML

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

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>

【问题讨论】:

  • 输入 bla2 中的旧 id 是正确的,即使正确的也无法使用我的朋友
  • @HossamElddinMagdy 请更新您的问题并说清楚。 “不工作”是什么意思?你检查过 JS 控制台吗?

标签: javascript php jquery html ajax


【解决方案1】:

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

my_ajax_processor_file.php:

<?php 
    $dt = new Date().getTime();
    $pp = 'get user picture path here';
    echo $pp .' - '. $pp;

请注意,您需要有一个外部 PHP 文件,我称之为 my_ajax_processor_file.php,它会执行一些额外的 PHP 处理,并且 ECHOs 返回一个值。

此值在 AJAX 代码块的 success 函数中接收,并称为 data(随意称呼它 - 名称在这里设置:function(data)

请注意,data 变量的内容仅在该成功函数中可用。


以下是 AJAX 的一些基本示例:

A simple example

More complicated example

Populate dropdown 2 based on selection in dropdown 1

【讨论】:

  • 想看看 OP 在哪里使用了您的代码? In a new question... 我以完全相同的形式关闭。
  • @Fred-ii- 谢谢。
【解决方案2】:

我认为您对解释 PHP 和 HTML 的位置存在根本性的误解:

  1. PHP 是一种为 Web 开发而设计的服务器端脚本语言(请参阅 this Wikipedia article)。这意味着 PHP 代码在到达浏览器之前在服务器上执行

  2. HTML 被浏览器解释为纯文本。 没有在浏览器中执行 PHP。

因此,一旦 JS 到达浏览器,echo $user-&gt;picture_path(); 已经被执行并被浏览器解释为纯文本。

你的 JS 在浏览器上会如下所示:

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

【讨论】:

  • 尽管你是对的,但我觉得这里不是这种情况,因为最后是+ '?' + new Date().getTime()。我假设这是保证新图像的某种方式。再说一次,我可能错了,那部分毫无意义。
猜你喜欢
  • 2014-09-22
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
相关资源
最近更新 更多