将路径为值的php变量传递给javascript


Passing php variable having path as value to javascript

我有一个php变量,它的值是path。我正试图将这个url变量传递给javascript函数。

    private function call_import_function($post_type,$fields,$fields_order,$upld_file)
{
            $uploaded_file  = $upld_file['file'];
            ?>
            <script type="text/javascript">
             jQuery(document).ready(function($) {
             var formdata = {
                            'action': 'get_csv',
                            'post_type' : '<?php echo $post_type;?>',
                            'fields' : '<?php echo $fields;?>',
                            'fields_order' : '<?php echo $fields_order;?>',
                            'uploaded_file' : '<?php echo $uploaded_file;?>',
                        };
             $.post('<?php echo $this->ajax_url;?>',formdata, function( data ) {
                            console.log("Begun!!!");
             }).done(function( data ) {
                            var obj = jQuery.parseJSON(data);
                            if(obj.error)
                            {
                                $("#column2").html(obj.error_msg);
                            }
                            else
                            {
                                console.log(data);
                                //$("#column2").html(obj.output);
                            }
                        });
             });
            </script>
<?php
}

但它给了我一个错误,

SyntaxError: malformed hexadecimal character escape sequence    
'uploaded_file' : 'E:'xampp'htdocs'nick'projectWed/wp-content/uploads/2'

我尝试过json_encode、带有$url的urlencode等php函数,但它们都没有为我提供很好的解决方案。我需要解决这个错误。。。

您有混合的正斜杠和反斜杠。

$url = ''E:'xampp'htdocs'nick'projectWed/wp-content/uploads/2/3.csv'

应该是

$url = "E:''xampp''htdocs''nick''projectWed''wp-content''uploads''2''3.csv";

PHP字符串中需要双反斜杠。它们的计算结果为单个反斜杠。这是为了从转义序列中消除它们的歧义,如''n(换行)、''t(制表符)、''088(字符X)等。

如果您遇到任何问题,请尝试并告诉我。

在php文件中

<?php
$url = "E:'xampp'htdocs'nick'projectWed/wp-content/uploads/2/3.csv";
?>
<script>
url = '<?php echo $url; ?>'
</script>

在js文件中

jQuery(document).ready(function(){
    console.log( url );
});

如果您有html代码
你可以在html中使用它。

<input type='hidden' value=<?=E:'xampp'htdocs'nick'projectWed/wp-content/uploads/2/3.csv?> name='url' id="url">

和脚本中的

<script>
   var url=$("#url").val();
</script>

使用addslashes,经过测试:

<?php
$url = addslashes('E:'xampp'htdocs'nick'projectWed/wp-content/uploads/2/3.csv');
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
var uploaded_file = '<?=$url?>';
alert("working fine: " + uploaded_file);
});
</script>

只需将对象准备为php数组,然后JSON编码

$url  = $upld_file['file'];
$formdata = array(
     'action' => 'get_csv',
     'post_type' => $post_type,
     'fields' => $fields,
     'fields_order' => $fields_order,
     'uploaded_file' => $url,
);            
?>
<script type="text/javascript">
     jQuery(document).ready(function($) {
     var formdata = JSON.parse('<?php echo json_encode($formData);?>');