ZitatWie sehen denn deine Buttons aus? Wenn Du ein <button> Element genommen hast ist der Defaulttype "submit". Versuche, explizit type="button" anzugeben.
Die Buttons hatten keinen Typ angegeben. Die Angabe als Button ist die Lösung! Vielen Dank!
ZitatWie sehen denn deine Buttons aus? Wenn Du ein <button> Element genommen hast ist der Defaulttype "submit". Versuche, explizit type="button" anzugeben.
Die Buttons hatten keinen Typ angegeben. Die Angabe als Button ist die Lösung! Vielen Dank!
Hallo nochmal,
ich habe noch eine Frage zu dem Thema. Ich habe die Liste in ein Formular gesteckt:
<form id="vv" method="post" action="vvausfuehren.php">
<div id="liste">
<?php
include 'listeaktualisieren.php';
?>
</div>
<input type="submit" id="vvbutton" class="formelement" name="vvbutton" value="Okay">
</form>
Beim Klick auf den Entfernen-Button, der in listeaktualisieren.php geladen wird, wird nun wie gewollt elementauslisteentfernen.php in #liste geladen. Dann allerdings wird vvausfuehren.php in der ganzen Seite geladen (es wird sozusagen die Datei aus der action des Formulars geladen, so wie wenn man das Formular submittet). Wie muss ich den Code anpassen, dass nur elementauslisteentfernen.php in #liste geladen wird und vvausfuehren.php nicht?
ZitatHast Du überhaupt das jQuery auch auf der neuen Seite ausgeführt? Es wirkt natürlich immer nur auf die aktuelle Seite.
Man, das ist mir so peinlich! Ich habe die JS-Datei nicht verlinkt. Entschuldigung für die Mühe!
Hallo,
danke für eure Antworten.
ZitatWenn Du schreibst, sie funktionieren gar nicht ist das sicher so zu verstehen, dass überhaupt nichts passiert beim Klick.
Genau das meine ich.
ZitatIst die PHP Datei in einen Unterordner? , oder liegen alle Dateien im gleichen Ordner?
Alle Dateien sind im gleichen Ordner.
ZitatWird beim Klick auf den Button die elementauslisteentfernen.php Datei richtig geladen?
Die elementauslisteentfernen.php Datei wird nicht geladen.
ZitatIch vermute, dass der Fehler anderswo liegt.
Ich habe am Code nichts verändert, nur in der neuen Datei den Code aus #9 eingefügt.
Ich habe überlegt, ob es wieder damit zusammen hängen kann, dass nicht alle Elemente berücksichtigt werden. Die Liste wird zuerst in index.php geladen. Über einen Button kommt man dann auf die andere Seite, in der die Liste erneut geladen wird.
Wo könnte der Fehler denn sonst liegen?
Hallo,
bei meiner weiteren Arbeit mit dem Code ist noch eine Frage aufgekommen. Sie steht in sehr enger Verbindung mit dem bisherigen Thema, daher schreibe ich nochmal hier rein. Ich möchte die Liste, die ich bisher nur in index.php verwendet habe, nun auch noch in einer anderen PHP-Datei verwenden. Die Liste habe ich auch in dieser mit dem folgenden Code eingefügt:
Die ID habe ich inzwischen in eine Klasse "liste" geändert. Der jQuery Code sieht entsprechend so aus:
$(document).ready(function() {
$('.liste').on('click', '.entfernenbutton', function() {
$('.liste').load('elementauslisteentfernen.php', {
nummerElement: $(this).val()
});
});
});
Die Buttons funktionieren in der neuen Datei jedoch garnicht. Was muss ich tun, damit die Buttons auch dort funktionieren?
Okay, ich bin neu in jQuery und Javascript und habe bisher noch nicht mit Eventbubbling gearbeitet. Also was ich nach kurzer Google-Recherche verstanden habe ist, dass hier im Beispiel nun jedem Element mit der Klasse "entfernenbutton", das in dem Element "liste" ist, die Funktion zugewiesen wird.
Das heißt, ich kann Folgendes machen?
$(document).ready(function() {
$('#liste').on('click, '.entfernenbutton', function() {
$(this).load('elementauslisteentfernen.php', {
nummerElement: nummerElement
});
});
});
Die andere Frage, die ich noch habe: Wie komme ich an den Wert des geklickten Buttons (um ihn dann zu übergeben)?
Hallo Sempervivum,
danke für deine Antwort.
Ich habe nun in "listeaktualisieren.php"
geändert in
und im jQuery-Code
geändert in
Jedoch passiert immer noch nicht das, was passieren sollte. Tatsächlich passiert nun: Ein Eintrag wird nur gelöscht, wenn bisher kein Eintrag gelöscht wurde. (Was sich gelöst hat ist, dass nun jeder Eintrag gelöscht werden kann.)
Hallo,
ich habe ein div
in dem die Array-Einträge der Session Variable "filme" ausgegeben werden.
<?php
If (isset($_SESSION['filme'])) {
For ($i = 0; $i <= count($_SESSION['filme']) - 1; $i++) {
print_r($_SESSION['filme'][$i]);
echo
'
<button id="entfernenbutton" value="'.$i.'">x</button>
<br>
';
}
}
?>
Alles anzeigen
Dabei erhält jeder Eintrag einen Button, um ihn zu löschen. Der Wert jedes dieser Buttons entspricht der Position des Eintrags im Array.
Bei Klick auf einen der Buttons wird mittels jQuery eine weitere PHP Datei ausgeführt. Hier der jQuery Code:
$(document).ready(function() {
$('#entfernenbutton').click(function() {
var button = $(this);
$('#liste').load('elementauslisteentfernen.php', {
nummerElement: button.val()
});
});
});
Hier der PHP Code:
<?php
session_start();
array_splice($_SESSION['filme'], $_POST['nummerElement'], 1);
include 'listeaktualisieren.php';
?>
Soweit dazu was passieren sollte. Tatsächlich passiert: Ein Eintrag wird nur gelöscht, wenn auf den Button des ersten Eintrags geklickt wird und bisher noch kein Eintrag gelöscht wurde.
Wo liegt der Fehler und wie korrigiere ich ihn am besten?
Wenn du deine bisherige Lösung behalten möchtest, kannst du den background-iamge Style auch inline setzen.
Das funktioniert für mich. Danke!!
Hallo, ich habe ein div, in dem ein Bild und ein Text übereinander stehen sollen. Das Bild soll die Größe des DIV haben. Der Text soll vertikal zentriert sein und horizontal einen Abstand von 1em vom linken Rand des div haben. Bisher habe ich das so gelöst, dass ich das Bild als Hintegrundbild in der CSS Datei angegeben habe. Da ich nun die Bild URL je nach Anwendung ändern möchte, ohne für jedes Bild eine eigene CSS Datei haben zu müssen, möchte ich, dass die Bild URL im HTML Code angegeben ist. Wie setze ich das um? Hier mein bisheriger Code:
HTML:
<style>
@import url('TestX.css');
</style>
<!-- Shop -->
<div id="shop">
<div id="shoptext">
<a id="shoplink1" href="..." target="_blank">
<p id="shoptextzeile1">
KLEIDER, BLUSEN, SHIRTS,
</p>
</a>
<a id="shoplink2" href="..." target="_blank">
<p id="shoptextzeile2">
TOPS uvm.
</p>
</a>
<a id="shoplink3" href="..." target="_blank">
<p id="shoptextzeile3">
JETZT ENTDECKEN >
</p>
</a>
</div>
</div>
CSS:
#shop {
display: flex;
align-items: center;
justify-content: flex-start;
height: 500px;
margin-bottom: 0.9em;
background-size: 100% 100%;
background-image: url("https://degume.de/Bilder/2021-02-18 Bild Shopwerbung.png");
}
#shoptext{
font-size: 50pt;
margin-left: 1em;
}
#shoptext a {
color: white;
text-decoration: none;
}
#shoptextzeile1, #shoptextzeile2, #shoptextzeile3 {
margin: 0;
background-color: black;
color: white;
}
#shoptextzeile1, #shoptextzeile2 {
font-family: 'Poppins N200';
margin-bottom: 0.25em;
}
#shoptextzeile3 {
font-family: 'Poppins N300';
text-decoration: underline;
}
Alles anzeigen
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.