• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

ID-Weitergabe HTML-JavaScript-PHP

BigAL

Neues Mitglied
Hallo liebe Community.
Ich habe viel Zeit damit verbracht nach passenden Threads zu suchen, doch leider ohne Erfolg.
Falls das Thema doch schon mal besprochen wurde, bitte ich um Entschuldigung.

Nun zu meinem Problem:
Ich habe eine JavaScript Funktion die einem DIV-Container öffnet und in diesem eine neue Datei lädt (über PHP Include).
Ziel ist es einen Datenbankeintrag auszuwählen und diesen in der neuen Box zu editieren.
Damit ich den richtigen Eintrag editieren kann möchte ich die jeweilige ID an die neue Seite übergeben.
-->
Ich habe eigentlich erwartet in meiner neuen Seite die ID als GET zu bekommen.
Leider kommt auf der Seite aber nix an.
Ich habs auch schon mitm Form und POST probiert, aber leider erfolglos.
Was mache ich falsch ?

Ich würde mich sehr über eure Hilfe freuen !
Danke und schönes Wochenende


--------------------------------------------
Über diesen Button öffne ich meine Box
--------------------------------------------
<a onclick=\"return toggleMe('editbox')\" href='javascript:void(0)?ID=$row->ID'>
<input type='submit' value='bearbeiten'>
</a>
--------------------------------------------
--------------------------------------------

--------------------------------------------
Hier mein DIV Container
--------------------------------------------
<div id='editbox' style='display:none; background:#F9FCFF'>
<h3>Datensatz bearbeiten</h3><br>
<?php include ("editDemo.html");?>
</div>
--------------------------------------------
--------------------------------------------

--------------------------------------------
Hier mein Button-Script
--------------------------------------------
<script type="text/javascript" language="JavaScript">

function toggleMe(a){
var e=document.getElementById(a);
if(!e)return true;
if(e.style.display=="none"){
e.style.display="block"
} else {
e.style.display="none"
}
return true;
}</script>
--------------------------------------------
--------------------------------------------

--------------------------------------------
Hier mein versuchter Zugriff auf die ID
--------------------------------------------
<?PHP

$ID = $_GET['ID'];
echo "Test mit der ID: $ID";

?>
--------------------------------------------
--------------------------------------------
 
Werbung:
Ich hab mittlerweile auch alles mögliche mit JQuery und AJAX probiert, habe aber leider 0 Erfahrungen mit JQuery und AJAX und komme irgendwie nicht weiter.
Habt ihr vielleicht einen guten Tip ?
Ich möchte wie gesagt, einen Button anklicken der mir die ID der Spalte übergibt. Diese ID möchte ich in einer neuen Datei die in einem DIV geldaden wird nutzen um den Eintrag zu editieren.
 
Ich hab mittlerweile auch alles mögliche mit JQuery und AJAX probiert, habe aber leider 0 Erfahrungen mit JQuery und AJAX und komme irgendwie nicht weiter.
Habt ihr vielleicht einen guten Tip ?
Ich möchte wie gesagt, einen Button anklicken der mir die ID der Spalte übergibt. Diese ID möchte ich in einer neuen Datei die in einem DIV geldaden wird nutzen um den Eintrag zu editieren.

Weißt du überhaupt was du da machst?

Was soll das werden:
HTML:
<a onclick=\"return toggleMe('editbox')\" href='javascript:void(0)?ID=$row->ID'>

Ich denke dir fehlen die grundlegenden Basics, denn das ist fernab jeglicher Logik was du hier zusammenschreibst.

Du weißt anscheinend noch nicht mal dass HTML und JS clientseitig ausgeführt werden und PHP serverseitig.

Bleib erst mal bei HTML und PHP und beschäftige dich erst später mit JS.
Oder HTML und JS, und später erst PHP.

Beides gleichzeitig überfordert die meisten.
 
Werbung:
ich suche doch nur n Weg um meinen Datensatz zu editieren :(

Das kannst du auch nur mit HTML und PHP.

PHP:
<a href="?ID=<?= $row->ID ?>">bearbeiten</a>

PHP:
<?php if ($_GET['ID']): ?>
  <div id='editbox' style="background:#F9FCFF">
    <h3>Datensatz bearbeiten</h3><br>
    <?php include ("editDemo.html");?>
  </div>
<?php endif; ?>
 
Hey !
Erstmal vielen Dank für die Hilfe (obwohl ich mich so blöde anstell).
Die Lösung ohne irgendwelche Extras ist gut, aber leider nicht ganz so wie ich es brauche.
Ich möchte gerne meine aktive Seite beibehalten und nicht erneut laden.
 
Werbung:
Hey !
Erstmal vielen Dank für die Hilfe (obwohl ich mich so blöde anstell).
Die Lösung ohne irgendwelche Extras ist gut, aber leider nicht ganz so wie ich es brauche.
Ich möchte gerne meine aktive Seite beibehalten und nicht erneut laden.

PHP:
<a class="edit" href="?ID=<?= $row->ID ?>">bearbeiten</a>

Code:
$('.edit').click(function () {
  $('#editbox').remove();
  $('#WohinAuchImmer').load($(this).attr('href') + ' #editbox', function () {
    // complete handler
  });

  return false;
});

http://api.jquery.com/load/
 
Nur nochmal zum Verständnis...
Dein JQuery Script spricht die Klasse .edit an und reagiert beim klickt. Die Klasse edit verwenden wir für den Link.
Als nächstes sprichst du das Eingabefeld editbox an und löscht es ???
Und danach wird das Ergebnis geladen und an dieselbe Seite übergeben ? und die editbox erneut geöffnet ?
 
Nur nochmal zum Verständnis...
Dein JQuery Script spricht die Klasse .edit an und reagiert beim klickt. Die Klasse edit verwenden wir für den Link.
Als nächstes sprichst du das Eingabefeld editbox an und löscht es ???
Und danach wird das Ergebnis geladen und an dieselbe Seite übergeben ? und die editbox erneut geöffnet ?

Das $('#editbox') wird am Anfang gelöscht, da es ja womöglich schon da ist. Wenn nicht, wird eben nichts gelöscht.
Vielleicht ist es so logischer:
Code:
if($('#editbox').length) {
  $('#editbox').remove();
}

Anschließend wird das Ziel des geklickten Links geladen und in $('#WohinAuchImmer') platziert.
Könnte in deinem Quellcode so aussehen:
PHP:
<div id="WohinAuchImmer">
  <?php if ($_GET['ID']): ?>
    <div id='editbox' style="background:#F9FCFF">
      <h3>Datensatz bearbeiten</h3><br>
     <?php include ("editDemo.html");?>
    </div>
  <?php endif; ?>
</div>

Wenn man dann noch mal auf einen Bearbeiten-Link klickt, wird erst die alte "#editbox" gelöscht und anschließend die neue geladen.
 
Werbung:
also erstmal 1000 Dank. Ich komme dem Ziel immer näher !
Echt perfekt ! Ich muss dringend JQuery JavaScript usw. lernen !
Die Box öffnet sich über dem bestehenden Inhalt und die ID wird auch übermittelt.
Soweit schon mal super.
2 kleine Probleme habe ich allerdings noch....

1. Es wird gleich zu Begin, beim Laden der Seite eine kleine Box ohne Inhalt und mit durchsichtigen Hintergrund gezeichnet.
Das ist die Box die später mit den Daten gefüttert wird, aber ich möchte sie eigentlich erst dann sehen, wenn auch was drin ist --> nicht schon als einfache Box
2. Wie bekomme ich die Box wieder zu ? Ich hatte eigentlich gedacht, wenn ich nochmal auf Bearbeiten klicke, schließt sich das Fenster wieder.

Schon mal 1000 Dank ! Du bist mein Profi !
Tut mir Leid wenn ich dich mit diesen Anfängerfragen belästige =)
 
also erstmal 1000 Dank. Ich komme dem Ziel immer näher !
Echt perfekt ! Ich muss dringend JQuery JavaScript usw. lernen !
Die Box öffnet sich über dem bestehenden Inhalt und die ID wird auch übermittelt.
Soweit schon mal super.
2 kleine Probleme habe ich allerdings noch....

1. Es wird gleich zu Begin, beim Laden der Seite eine kleine Box ohne Inhalt und mit durchsichtigen Hintergrund gezeichnet.
Das ist die Box die später mit den Daten gefüttert wird, aber ich möchte sie eigentlich erst dann sehen, wenn auch was drin ist --> nicht schon als einfache Box
2. Wie bekomme ich die Box wieder zu ? Ich hatte eigentlich gedacht, wenn ich nochmal auf Bearbeiten klicke, schließt sich das Fenster wieder.

Schon mal 1000 Dank ! Du bist mein Profi !
Tut mir Leid wenn ich dich mit diesen Anfängerfragen belästige =)

Zu 1:
Hast du #WohinAuchImmer per CSS formatiert? Ein unformatiertes, leeres <div> ist nämlich nicht sichtbar.

Zu 2:
Dann wird es etwas komplizierter:
Code:
$('.edit').click(function () {
  var href = $(this).attr('href');

  if($('#editbox').length && $('#editbox').data('href') == href) { // gleiche #editbox ist offen
    $('#editbox').remove();
    return false;
  } else if($('#editbox').length) { // eine andere #editbox ist offen
    $('#editbox').remove();
  }

  $('#WohinAuchImmer').load($(this).attr('href') + ' #editbox', function () {
    $(this).children('#editbox').data('href',href); // href-String speichern
  });

  return false;
});

Ungetestet.
 
Wow !
Du bist der Beste !
Absolut TOP ! Genau so hab ich es mir vorgestellt.
Mit einem Klick erscheint die Box, mitm nächsten Klick ist sie wieder weg.
Und das Problem Nr.1 war tatsächlich ein Fehler von mir im CSS.
Echt vielen vielen Dank !
Perfekt !
 
Werbung:
Hallo mal wieder ! Es geht weiter...
Ich arbeite nun in meinem neuen "Fenster" welches über das DIV geladen wird.
Dieses Fenster möchte ich verwenden um meine Datensätze zu editieren. Dafür benötigte ich ja die Weitergabe der ID damit ich den entsprechenden Datensatz auslesen kann.
Nun habe ich eine einen HTML Seclect mit Options und möchte hier entsprechend der ID die richtige Option mit einem Select vorselektieren. selected
Ich habe probiert das Ganze mit einer JQuery zu machen.
Die ist zwar noch nicht ganz fertig, aber mein Problem ist, dass das Script gar nicht erst durchlaufen wird.
Es wird noch nicht mal n Alert ausgegeben.

Kann ich keine JQuery in einer im DIV geöffneten Datei ausführen ?
 
es muss am Aufruf meines Fensters liegen...
ich habe die Datei über einen "normalen" link aufgerufen und die Alerts werden ausgegeben....
über meinen vorhergegangenen Aufruf funktionierts nicht.
 
Werbung:
es muss am Aufruf meines Fensters liegen...
ich habe die Datei über einen "normalen" link aufgerufen und die Alerts werden ausgegeben....
über meinen vorhergegangenen Aufruf funktionierts nicht.

Mach das doch einfach PHP-seitig? Du kannst ja ganz einfach per HTML bestimmen welche <option> selektiert wird:
HTML:
<select>
  <option value="1">1</option>
  <option value="2" selected>2</option>
</select>

Immer versuchen so wenig JS wie möglich zu verwenden und stattdessen auf die "nativen" Möglichkeiten setzen.

Und nein, nachgeladenes JS wie in deinem Fall, wird nicht ausgeführt.
 
Danke für die Antwort.
Klar kann ich das Selected im HTML setzen aber per PHP ist das Ganze doch ziemlich umständlich.

<option <?php $val1 = ($row->Value == "Val1" ? "selected" : ""); echo $val1; ?>>Value 1</option>
<option <?php $val2 = ($row->Value == "Val2" ? "selected" : ""); echo $val2; ?>>Value 2</option>
...

Und nochmal zu der nachgeladenen Seite...dass heißt also das in der Seite kein CSS oder JavaScript funktioniert, richtig ?
 
Zurück
Oben