在jQuery .val中使用PHP?

时间:2018-04-26 05:57:45

标签: php jquery wordpress

是否可以在jQuery中从PHP获取值?我有以下PHP:

$attachment_id = attachment_url_to_postid( $_POST[ 'background-video' ] );
$video_meta = get_post_meta( $attachment_id , '_wp_attachment_metadata', true );

我想在jQuery中使用值$video_meta['length'],现在看起来像这样:

jQuery('input[name=slide_duration]').val("PHPVIDEOMETALENGTH");

这可以用jQuery吗? 编辑:这是一个单独的.js文件,它已入队。

6 个答案:

答案 0 :(得分:4)

不,因为你有一个单独的.js文件,你不能在其中使用PHP。因为服务器不会将其视为php文件或代码。

但你可以通过另一种方式来做到这一点,

将一个隐藏标签放在同一页面(可能是一个php文件):

<input type="hidden" id="slide_duration" value="<?php echo $video_meta['PHPVIDEOMETALENGTH'] ?>">

然后使用jquery,在JS代码中获取它的值。

var videolength = $('#slide_duration').val();

答案 1 :(得分:1)

PHP文件中使用JavaScript的唯一方法是,如果您通过PHP投放该文件。例如,您的PHP文件应该是:

<?php
   header("Content-Type: application/javascript");
   require "path/file.js";
?>

然后,您只需在PHP文件中编写js代码:

jQuery('input[name=slide_duration]').val("<?= $video_meta['length'];?>");

要加载PHP文件,您可以使用script元素,就像使用JavaScript文件一样。

答案 2 :(得分:0)

将值分配给var文件

之前的js separate.js
<script>var meta_length = '<?=$video_meta['length'];?>'</script>
<script src="separate.js"></script>

separate.js文件

$(function(){    
    jQuery('input[name=slide_duration]').val(meta_length);    
});

答案 3 :(得分:0)

您可以在$video_metadiv span文件中设置php

例如:

 <span id="video_meta_vale" style="display:none;"><?php echo $video_meta;?></span>

然后只需使用js

id检索它

例如:

 var t = $('#video_meta_vale').html();
 jQuery('input[name=slide_duration]').val(t);

答案 4 :(得分:0)

试试这个,

首先在隐藏字段内设置值,然后输入js。

 $video_meta = get_post_meta( $attachment_id , '_wp_attachment_metadata', true );

<input type="hidden" value=<?php echo $video_meta; ?> id="video_meta">

<script>
var video_meta = $('#video_meta').val();
alert(video_meta);
</script>

答案 5 :(得分:0)

PHP中的jQuery

<?php

    $attachment_id = attachment_url_to_postid( $_POST[ 'background-video' ] );
    $video_meta = get_post_meta( $attachment_id , '_wp_attachment_metadata', true );

    /* echoing <script> */
    echo "
    <script>

        $(function()
        {
            $('input[name=slide_duration]').val({$video_meta['length']});
        });

    </script>";

?>