hi ik heb een code en deze laat doormiddel van een jquery/ js script een bestand link zien

{%=file.name%}

echter laat hij die file zien met spaties erin en dus kan ik hem in veel andere code niet gebruiken
nou dacht ik van ik voeg gewoon rawurlencode() toe maar ik krijg die niet werkend op 1 of andere manier

is er hiervoor nog een andere manier ?
rawurlencode() is een PHP functie, dus dit moet je in PHP aanroepen.
ja het is ook een php file maar in die php file heb ik een script stukje



    <script id="template-download" type="text/x-tmpl">
      {% for (var i=0, file; file=o.files[i]; i++) { %}
	  
{%  if(i%3==0 && i != 0) { %}
    
      
      {% } %}
	  <div id="download" class="models-grid-item template-download fade"><div class="thumbnail">
	  
                      {% if (file.mediumUrl) { %}
                          <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img class="previewimg" src="{%=file.mediumUrl%}"></a>
                      {% } %}
                  
          <tr class="template-download fade">
             
              <td>
                  {% if (window.innerWidth > 480 || !file.thumbnailUrl) { %}
                      <p class="name">
                          {% if (file.url) { %}
                              <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?\'data-gallery\':\'\'%}>{%=file.name%}</a>
                          {% } else { %}
                              <span>{%=file.name%}</span>
                          {% } %}
                      </p>
                  {% } %}
                  {% if (file.error) { %}
                      <div><span class="label label-danger">Error</span> {%=file.error%}</div>
                  {% } %}
              </td>
			  <td>
			  <p class="title"><strong>{%=file.title||\'\'%}</strong></p>
<p class="description">{%=file.description||\'\'%}</p>
			  </td>
			  
			  
              <td>
                  <span class="size">{%=o.formatFileSize(file.size)%}</span>
              </td>
              <td>
			{% if (!file.mainimage) { %}
			  <a href="beheer/edit.php?page=mainimage&tab='.$tab.'&id='.$id.'&image={%=file.name%}">
			 
            <button class="btn btn-success"><span>Maak hoofd foto</span></button></a>
			
                  {% if (file.deleteUrl) { %}
                      <button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields=\'{"withCredentials":true}\'{% } %}>
                          <i class="glyphicon glyphicon-trash"></i>
                          <span>Delete</span>
                      </button>
                      <input type="checkbox" name="delete" value="1" class="toggle">
					 <strong> {%=file.mainimage||\'\'%}</strong>
                  {% } else { %}
                      <button class="btn btn-warning cancel">
                          <i class="glyphicon glyphicon-ban-circle"></i>
                          <span>Cancel</span>
                      </button>
                  {% } %}
				  {% } %}
              </td>
          </tr>
		</div></div>
  
      {% } %}
    </script>



deze regel

  <a href="beheer/edit.php?page=mainimage&tab='.$tab.'&id='.$id.'&image={%=file.name%}">


wil ik aanpassen naar bv

  <a href="beheer/edit.php?page=mainimage&tab='.$tab.'&id='.$id.'&image='.rawurlencode({%=file.name%}).'">


maar dan krijg ik gelijk een witte page en geen error in mijn netwerk tab
Dit is geen PHP-file maar een template file. Maar tussen PHP-tags gaat dit ook niet werken, want Javascript wordt door de cliënt als laatste in de request geparsed, en PHP als eerste door de server. Je hebt meer aan encodeURIComponent()

Verder hebben we gelukkig ook code-tags voor lappen code.
o lol sorry voor de tags :D

maar uhm thanks voor de info maar werkt ook niet :P





[size=xsmall]Toevoeging op 17/08/2019 14:45:09:[/size]

hij past nu wel andere texten aan als ik dus zelf iets schrijf voor die file.name
maar het deel van file.name past hij niet aan

ik kan opzich hele class aanpassen dat hij alle linken van file.name gaat zien met die code maar had gehoopt dat dat niet hoefde
Welk template systeem gebruik je? Misschien heeft die al deze mogelijkheid?
En waar komt {%=file.name%} vandaan? En wat heb je geprobeerd?

Zelf third-party classes aanpassen vind ik een no-go. Of je moet ze extenden.
Maar dat had ik geloof ik al eens verteld ;-)
haha ja maar dat extenden snap ik dus nog niet zo goed

uhm
en ik heb elke form van code all geprobeerd mbt tot encodeURIComponent() of rawurlencode()

de filename komt ergens uit de class vandaan denk ik :-S

ik dacht dat het gewoon ff kon met rawurlencode()
hij pakt all mijn eigen codes enzo in php er ook gewoon tussendoor
komt waarschijnlijk door dat jquery geval waar ik dus geen kaas van heb gegeten

rest dat ik wou werkt wel al perfect :P


[size=xsmall]Toevoeging op 17/08/2019 15:13:12:[/size]

misschien is dit wat maar ik kom er niet uit

dit is de template geval dat wordt gebruikt volgens mij
https://github.com/blueimp/JavaScript-Templates#output-encoding

[size=xsmall]Toevoeging op 17/08/2019 15:54:01:[/size]

ok uhm ff snelle update ik heb nu even als test hem aangepast in de class zelf en dan werkt het wel echter pakt het script die zelfde code blijkbaar ergens dubbel want ik krijg hele rare codes in mijn linken


[size=xsmall]Toevoeging op 17/08/2019 16:12:02:[/size]

ik heb een kleine aanpasing gemaakt ff tijderlijk rechtstreeks in de class

dit blijkt te werken hij past alle rare tekens netjes aan behalve spaties ?


$file->nameimage = rawurlencode($file_name);



   protected function get_file_object($file_name) {
        if ($this->is_valid_file_object($file_name)) {
            $file = new \stdClass();
            $file->name = $file_name;
	$file->nameimage = rawurlencode($file_name);
            $file->size = $this->get_file_size(
                $this->get_upload_path($file_name)
            );
            $file->url = $this->get_download_url($file->name);
            foreach ($this->options['image_versions'] as $version => $options) {
                if (!empty($version)) {
                    if (is_file($this->get_upload_path($file_name, $version))) {
                        $file->{$version.'Url'} = $this->get_download_url(
                            $file->name,
                            $version
                        );
                    }
                }
            }
            $this->set_additional_file_properties($file);
            return $file;
        }
        return null;
    }


[size=xsmall]Toevoeging op 17/08/2019 16:25:05:[/size]

ok ik heb probleem gevonden en ik denk dat dit moeilijk gaat worden reden blijkt mijn header te zijn waardoor hij blijkbaar niet werkt :(
Maar waar komt die template vandaan? Uit een bepaalde JavaScript framework? Zoals ReactJS ofzo?
ok uhm wat kan het wezen als een link wel goed in de code maar als je erop klikt deze niet gaat naar de aangewezen locatie

als ik echter de link kopieer en in de adressbalk zet dan doet deze het wel
Dan is mogelijk de 'href' of de afhandeling erachter fout? Sporadisch kan het zelfs aan CSS liggen. Inspecteer de URL eens met de inspectietool.
<a href="beheer/edit.php?page=mainimage&tab='.$tab.'&id='.$id.'&image={%=file.nameimage%}">

ik zal ff kijken of het werkt met http_host maar ik denk dat het zo gewoon goed moet zijn

[size=xsmall]Toevoeging op 17/08/2019 17:07:48:[/size]

uhm ok ik was ff een het klooien en het blijkt dat je geen button kan gebruiken in een link
iemand daar een oplossing voor of moet ik een onclick ofzo erin doen?

Reageren