将具有path作为值的php变量传递给javascript

将具有path作为值的php变量传递给javascript,javascript,php,jquery,Javascript,Php,Jquery,我有一个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"&g

我有一个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
}

我已经尝试过像json_encode、urlencode和$url这样的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>
如果您有html代码
您可以在html中使用它

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

只需将对象准备为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);?>');
$url=$upld_文件['file'];
$formdata=array(
“操作”=>“获取csv”,
“post\u type”=>$post\u type,
“字段”=>$fields,
'fields\u order'=>$fields\u order,
“上传的文件”=>$url,
);            
?>
jQuery(文档).ready(函数($){
var formdata=JSON.parse(“”);

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

jQuery(文档).ready(函数($){
var\u文件=“”;
警报(“工作罚款:+上传的_文件);
});

将“\`替换为
/
。反斜杠是转义字符实际上$url的值是动态生成的。它不是手动放置的:)…这里我手动放置了一个让人理解的地方。$url是动态生成的错误是因为生成的JavaScript无效。这是由于字符串中的斜杠,它在JavaScript中也表示转义序列。解决此问题的一个方法是让JavaScript能够理解(因为JSON和JavaScript有相同的语法)@JonathanLonowski这不应该是引用问题的重复。请添加双反斜杠而不是单反斜杠的解释。单反斜杠用于特殊字符,如新行、制表符或ascii转义序列。要在PHP字符串中使用反斜杠,必须使用额外的反斜杠进行转义。实际上是$url的值是动态生成的。。它不是手动放置的。:)…这里我手动放置以供他人理解..为什么在
projectWed
之后将单个“/”更改为“\\”?实际上$url的值是动态生成的..它不是手动放置的..:)…这里我手动放置以供他人理解。您清空了我的变量@HasmukhMistry您是否定义了
$url
b在使用我的代码之前?是的..我更新了我问题中的代码..你能试一下吗???@HasmukhMistry正如我上面看到的,你定义了
$url
,但是回显了
$uploaded\u file
?很抱歉,我在这里键入时出错..但是我传递了相同的变量..你能检查我更新的代码吗?看看是否有效…addslashes启用让我传递值,但在json解析中给出了一个错误。json数组由我的php文件返回,使用$.post调用
<script>
   var url=$("#url").val();
</script>
$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);?>');
<?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>