用php链接替换javascript href内容

时间:2018-07-16 17:39:11

标签: javascript php

我需要用php链接替换javascript中的一个链接。

javascript行:

'<a href="' + res.attachment.guid + '" target="_blank">

php:

echo '<a href="' . wp_get_attachment_url($value->ID)  . '" target="_blank">

javascript上下文:

if (res.success) {
  $('.no_file_upload').remove();
  var template = '<li class="attachment-' + res.attachment.ID + '">' +
    '<p>' + res.attachment.post_title + '<span>' +
    '<a href="' + res.attachment.guid + '" target="_blank"><i class="fa fa-cloud-download" aria-hidden="true"></i></a>' +
    '<a href="#" data-post-id="' + res.attachment.ID + '" data-project-id="' + res.attachment.project_id + '" data-file-name="' + res.attachment.post_title + '" class="delete-attach-file"><i class="fa fa-times" aria-hidden="true" data-post-id="' + res.attachment.ID + '" data-project-id="' + res.attachment.project_id + '" data-file-name="' + res.attachment.post_title + '"></i></a>' +
    '</p></span>' +
    '<span>' + res.attachment.post_date + '</span>' +
    '</li>';

我尝试过这种方法,但失败了:

<?php echo '<a href="' . wp_get_attachment_url($value->ID)  . '" target="_blank"> ?>

因此,我的Wordpress网站正在使用WP Offload S3 Lite插件将所有文件上传到Amazon S3。我不得不更改一些模板文件以设法在网站上显示正确的Amazon S3链接,我使用wp_get_attachment_url($ value-> ID)更改了href链接。剩下的唯一一个内容是一个javascript文件,该文件仍在加载错误的下载链接。我需要使其正常工作。

4 个答案:

答案 0 :(得分:0)

  1. 我认为最好使用文件名而不是附件URL。 get_attached_file($ data-> ID) https://developer.wordpress.org/reference/functions/get_attached_file/
  2. 您还可以使用https://wordpress.org/plugins/amazon-s3-and-cloudfront/来获取正确的网址

1。 当您拥有文件名时,可以使用自定义函数生成自己的链接。 请让我知道是否有任何问题。

答案 1 :(得分:0)

javascript行

@Query(nativeQuery = true,
            value = "SELECT viw.* \n" +
                    "FROM  viwFinanceiro_Extrato_DocumentosPesquisar viw \n" +
                    "WHERE viw.CodigoGNPessoas IN (:CodigoGNPessoas) AND \n" +
                    "(viw.DocumentoDataEmissao >= :DataInicial AND viw.DocumentoDataEmissao <= :DataFinal) AND \n" +
                    "viw.CodigoFinanceiroFNDocumentosSituacaoFinanceira IN (:CodigoFinanceiroFNDocumentosSituacaoFinanceira) AND \n" +
                    "viw.CodigoFinanceiroFNTiposDocumentos IN (:CodigoFinanceiroFNTiposDocumentos) AND \n" +
                    "viw.DocumentoDigitado = CASE WHEN :NumeroDocumento IS NULL OR :NumeroDocumento = '' THEN viw.DocumentoDigitado ELSE :NumeroDocumento END AND \n" +
                    "viw.DocumentoVerificado = CASE WHEN :IndicadorDocumentoVerificado = 3 THEN viw.DocumentoVerificado ELSE :IndicadorDocumentoVerificado END  AND \n" +
                    " ************ HERE CODE FROM WHERE ************  \n" +
                    " ORDER BY viw.DocumentoDataEmissao")
    Collection<ViwFinanceiroExtratoDocumentosPesquisar> load(@Param("CodigoGNPessoas") List<Long> CodigoGNPessoas,
                                                             @Param("DataInicial") String DataInicial,
                                                             @Param("DataFinal") String DataFinal,
                                                             @Param("CodigoFinanceiroFNDocumentosSituacaoFinanceira") List<Integer> CodigoFinanceiroFNDocumentosSituacaoFinanceira,
                                                             @Param("CodigoFinanceiroFNTiposDocumentos")  List<Integer> CodigoFinanceiroFNTiposDocumentos,
                                                             @Param("NumeroDocumento") String NumeroDocumento,
                                                             @Param("IndicadorDocumentoVerificado") Integer IndicadorDocumentoVerificado)

完整的Javascript

<a href="' + cloudfront_url + res.attachment.guid + '" target="_blank">

答案 2 :(得分:0)

您正在尝试混合使用Javascript和PHP代码。这是可能的,但让我解释一下它是如何工作的。 PHP代码在服务器端执行,而Javascript在客户端执行。 因此,如果您在javacsript代码中写下任何php代码,则服务器将HTML页发送给用户时将执行该代码。页面加载后,您将无法在javascript代码中调用任何PHP函数。

答案 3 :(得分:0)

在执行JavaScript客户端之前,已在服务器中执行了PHP代码,在这种情况下,唯一的方法是使用AJAX调用从服务器获取下载链接。 另一方面,有一个选项可以在PHP内编写JavaScript,但不能相反。