将具有path作为值的php变量传递给javascript
我有一个php变量,它的值是path。我试图将这个url变量传递给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
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>