javascript неправильно считывает переменную PHP в window.open

#javascript #php #html #button

#javascript #php #HTML #кнопка

Вопрос:

У меня есть очень простая таблица, в которой я получаю информацию о доходах для некоторых людей. Таблица правильно извлекает данные, а ссылка на файл сохраняется в переменной, например:

 $file = "/".$row[9];
 

Где $row берется из цикла while. У меня есть кнопка внутри таблицы:

 <button id = "openbtn" class = 'actionbtn' onClick = "window.open('<?php echo $file;?>')" title = 'Open Attachment'><i class='fa fa-file'></i></button>
 

Если я создам новую переменную, в которой я вручную установлю ссылку:

 $file2 = '/folder1/folder2/somename.pdf';
 

тогда кнопка откроется нормально. Но это не будет работать с $file , я получаю Uncaught SyntaxError: недопустимый или неожиданный токен.

Есть какие-нибудь зацепки?

Комментарии:

1. Посмотрите, что генерируется в браузере …. осмотрите элемент, посмотрите, что выдает php-код.

2. Я сделал, на самом деле $file2 создается на основе echo $file one; есть ли вероятность, что есть скрытые символы, которые я не вижу, и javascript улавливает? в любом случае, чтобы «очистить» строку/

3. Что это? скопируйте и вставьте то, что сгенерировано….

4. /scans/migrated/4099_20046_INCOME_23594.pdf

5. Я даже пытался обрезать строку и все равно не работает

Ответ №1:

 foreach($row as $myfile){
   echo '<button
                 id="openbtn"
                 class="actionbtn"
                 title="Open Attachment"
                 onclick="window.open('."'$myfile'".');"
                 >
                 <i class='fa fa-file'></i>
         </button>';
}
 

попробуйте этот цикл

Комментарии:

1. У меня было » , но не «; и нет, все еще не работает

Ответ №2:

Комбинация для trim ($file) и изменение «» сделали это:

 <button id = "openbtn" class = 'actionbtn' onClick = 'window.open(<?php echo '"'.$file .'"';?>);' title = 'Open Attachment'><i class='fa fa-file'></i></button>