%20 durch space ersetzten

06/25/2018 13:13 Lindanus#1
Hallo Leute,
ich bräuchte mal eure Hilfe, da ich nicht weiterkomme...

Code:
<script type='text/javascript'>
function change(){
var image = document.getElementById("image")
var select = document.getElementById("select");
image.setAttribute("src",select.value+".jpg")
input.setAttribute("value",select.value)
}</script>

...
	<?php
	$result = mysqli_query($DB, "SELECT * FROM artikel ORDER BY id ASC");
	echo "<select id='select' name='Artikel' onchange='change()' style='width: 300px;'>";
    echo "<option value=''>Please select Artikel</option>";
	echo "<option value=''>-----------------------</option>";
	while ($row = mysqli_fetch_array($result)) 
	{
	$new1 = ($row['artikelnr'] . " " . $row['artikelname']);
    $new2 = str_replace('%20', ' ', $new1);
    echo "<option name='artikel' value='".$new2."'>" . $new2 . "</option>";
    }
	echo "</select>";
	?>

...

<img src="startbild.png" id="image" height="100"/>
Soweit funktioniert alles und die Nr und der Name werden ausgegeben.
Aber der Bildname im img tag (id=image) wird immer mit %20 (1%20Bildname.jpg) ausgegeben, aber ich möchte das gerne mit space (1 Bildname.jpg) haben.
Könnte mir einer helfen, wie ich das machen muss?
Vielen Dank.
06/25/2018 17:51 Serraniel#2
Schau dir mal die Funktion decodeURI an: [Only registered and activated users can see links. Click Here To Register...]

#moved
06/25/2018 20:30 Lindanus#3
das ist es ja ich blicke das nicht, was ich wie machen muss....
06/25/2018 21:04 Mikesch01#4
Also du hast nur 4 Zeilen JavaScript. Bei einer gewissen Zeile willst du ja die URL "verändern". Jetzt kannst du mal überlegen, welche Zeile betroffen ist, wo genau der Wert abgefragt wird und was diese Funktion macht, die dir gezeigt wurde.
06/25/2018 22:34 Lindanus#5
hmmm ich muss select.value decoden.
aber ich weiss nicht wie und wo ich das jetzt einsetzten muss.

Ein Ansatz:
...
decodeURI(select.value);
image.setAttribute("src",select.value+".jpg")
...

Ist das richtig?
Wäre nett wenn Du mir helfen würdest, ich bin noch kein Profi.
06/25/2018 23:17 Mikesch01#6
Zumindest hast du die Zeile gefunden. Du brauchst dafür kein Profi zu sein. Das sind elementare Grundlagen. Aber ich weiss nicht in wiefern du coden kannst.

Code:
image.setAttribute("src", decodeURI(select.value)+".jpg")
Etwas Literatur: [Only registered and activated users can see links. Click Here To Register...]
06/27/2018 13:49 Lindanus#7
Hallo und Danke.
Wenn ich das so mache wie du geschrieben hast
image.setAttribute("src" , 'img/Monster/' + decodeURI(select.value) + ".png")
dann wird der Pfad zum Bild immer noch mit %20 und nicht mit space gefüllt.

[Only registered and activated users can see links. Click Here To Register...]
es sollte aber
[Only registered and activated users can see links. Click Here To Register...] Troll.png

Hättest Du evtl noch eine Idee?
Und nein ich bin keine große Programmiererin, ich bin grade dabei zu lernen...
06/27/2018 15:12 Devsome#8
Leerzeichen werden wenn man diese in die Adresszeile aufruft automatisch zu %20.
Entweder entfernst du das Leerzeichen aus deiner Datei oder musst damit leben das %20 in der URL steht.
06/27/2018 15:14 iMostLiked#9
Nutz mal
Code:
image.setAttribute("src", decodeURIComponent(select.value).replace(/\+/g, ' ')+".jpg")
Jetzt mal abgesehen davon: Wenn du den Link mit Rechtsklick kopierst oder diesen über die Adresszeile aufrufst, verwandelt sich das Leerzeichen in der URL automatisch zu %20. Das ist aber normal. Kannst du nichts gegen machen.
Und normalerweise sollte es keine Komplikationen geben, wenn im Query %20 enthalten ist, da dein Browser und jeder normale Webserver es als ein Leerzeichen interpretiert.
06/27/2018 15:37 Lindanus#10
Danke Most. Ich werde das mal ausprobieren.
Ich dachte das ergibt ein Poblem, wenn die %20 im Link auftaucht, aber wenn das 'normal' ist und kein Problem ergibt, bin ich zufrieden...

Danke auch Devsome.

EDIT: @Most: das bringt leider auch nichts ;)