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

时间:2015-12-22 05:53:10

标签: javascript php jquery

我有一个php变量,其路径为value。我正在尝试将此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这样的php函数,urlencode和$ url,但是没有它们为我提供了很好的解决方案。我需要解决这个错误...

5 个答案:

答案 0 :(得分:1)

你有正斜杠和反斜杠。

$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)等转义序列的歧义。

答案 1 :(得分:0)

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

在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 );
});

答案 2 :(得分:0)

如果你有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>

答案 3 :(得分:0)

只需将对象准备为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);?>');

答案 4 :(得分:0)

使用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>