php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 03-04-2006, 14:54
PHPhans
 Newbie
Links : Onlinestatus : PHPhans ist offline
Registriert seit: Apr 2006
Beiträge: 14
PHPhans ist zur Zeit noch ein unbeschriebenes Blatt
Standard Buttons und Eingabefelder in einer Schleife

Hi also zunächst hab ich die Such Funktion benutzt und hab nix passendes gefunden.

Also ich hab da Formular der Datensätze aus der Datenbank ausliest und je nachdem wieviele in der DB sind werden dementsprechend die Datensätze auf der Seite in Eingabefeldern ausgegeben. Dazu habe ich noch die Buttons die ich zum Löschen der Datensätze benutzen möchte.

Frage1: Wie kann ich, wenn ich die Eingabefelder verändere, ein Update an die Datenbank schicken. Wenns geht am besten mit dem "onchange".
Kann ich irgendwie den value Wert ansprechen, weil dort steht was aktuell geändert wurde.

Frage2: Ist im Prinzip das gleiche wie die Frage 1, aber wie geht das, wenn ich den Löschen Button anklicke dass der entsprechende Datensatz gelöscht wird.
Irgendwie geht das in der Schleife nicht, denn da werden alle Datensätze gelöscht.

Falls jemand sowas ähnliches mal gemacht hat am besten mal den Code posten


PHP-Code:
while($ds mysql_fetch_assoc($result)) { 
 echo

   <input type=\"button\" name=\"button"
.$ds["ID"]."\"      value=\"Löschen\" onClick=";/*$sql = "Delete FROM tebelle where ID =".$ds["ID"].";";mysql_query($sql) OR die(mysql_error());*/echo" > 
          
  <input name=\"eingabefeld"
.$ds["ID"]."\" size=\"50\" value= \"".$ds["title"]."\"   type=\"text\" onchange="; echo"> 
          
 "

          
$i++; 
          

Ich bedanke mich schonmal im Voraus!
Mit Zitat antworten
  #2 (permalink)  
Alt 03-04-2006, 15:24
komikaa
 Registrierter Benutzer
Links : Onlinestatus : komikaa ist offline
Registriert seit: Jun 2005
Beiträge: 128
komikaa ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also sorry aber ich versteh dein problem nicht so wirklich
Mit Zitat antworten
  #3 (permalink)  
Alt 03-04-2006, 16:01
PHPhans
 Newbie
Links : Onlinestatus : PHPhans ist offline
Registriert seit: Apr 2006
Beiträge: 14
PHPhans ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es geht einfach dadrum dass ich Buttons und Eingabefelder in einer Schleife habe und diese auch benutzen wil.
Die schleife gibt, jenachdem wieviele Datensätze es gibt, Eingabefelder und Buttons aus.

Das Problem dabei ist dass ich die Buttons nicht benutzen kann, das heisst wenn ich auf einen der Buttons klicke werden alle Datensätze gelöscht und nicht der einzelne.

Der Sinn bei der ganzen Sache ist dass ich auf der Webseite ein Datensatz verändern und löschen möchte


Also ganz einfach gesagt ich brauche sowas wie
if Button1 = angeklickt then Lösche datensatz mit der ID 1
if Button2 = angeklickt then Lösche datensatz mit der ID 2
das geht nicht weil sich das in der schleife befindet

Geändert von PHPhans (03-04-2006 um 16:07 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 03-04-2006, 16:03
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von PHPhans
Das Problem dabei ist dass ich die Buttons nicht benutzen kann, das heisst wenn ich auf einen der Buttons klicke werden alle Datensätze gelöscht und nicht der einzelne.
Dann übergebe die ID des Datensatzes, so dass du den "richtigen" Löschen kannst - z.b. im value-Attribut des Buttons.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 03-04-2006, 16:23
PHPhans
 Newbie
Links : Onlinestatus : PHPhans ist offline
Registriert seit: Apr 2006
Beiträge: 14
PHPhans ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das mache ich ja mit dem name-Attribut.

Also gut nehmen wir an in der Datenbank sind 4 Satensätze:

"statisch":ich mach mir 4 Buttons mit 4 Eingabefeldern. Hirbei ist es kein Problem onClick bzw. onchange zu benutzen.

dynamisch:weil jetz das ganze in der schleife ist kann ich diese onclick sachen net nutzen, weil er biem Löschen alle Datensätze löschen würde.


Button Eingabefeld vorbelgt mit Datensatz aus der Datenbank
----------- ------------------------------------------------------
|Löschen| |eins |
----------- ------------------------------------------------------
----------- ------------------------------------------------------
|Löschen| |zwei |
----------- ------------------------------------------------------
----------- ------------------------------------------------------
|Löschen| |drei |
----------- ------------------------------------------------------
----------- ------------------------------------------------------
|Löschen| |vier |
----------- ------------------------------------------------------
...


am besten wärs wenn ich außerhalb der schleife diese onclick bzw. onchange Sachen ansprechen könnte, damit ich dann sagen kann z.B:
if Button1.onclick then loeschen();
if Button2.onclick then loeschen();
...
So würde nur der Datensatz gelöscht werden den man auch will.

In der Schleife geht das aber nicht.

Ich kann mir nicht vorstellen dass ich der erst bin der Datensätze dynamisch verwalten möchte.

Habt ihr vieleicht andere Ideen oder Vorschläge wie man das lösen könnte, sicher gibt es eine elegantere Art das zu machen.

Geändert von PHPhans (03-04-2006 um 16:38 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 03-04-2006, 16:31
komikaa
 Registrierter Benutzer
Links : Onlinestatus : komikaa ist offline
Registriert seit: Jun 2005
Beiträge: 128
komikaa ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du musst eben die namen deiner buttons richtig vergeben - dann geht das auch.

vergeb einfach nen array
$name[$i]

dann kannst du auf die zugreifen.

am besten suchst du mal danach im forum - gibt es mehrere beitrage dazu
Mit Zitat antworten
  #7 (permalink)  
Alt 03-04-2006, 16:32
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von PHPhans
dynamisch:weil jetz das ganze in der schleife ist kann ich diese onclick bzw. onchange sachen net nutzen.
Wieso das denn nicht?
"Dynamisch" erzeugst du mit PHP auf dem Server HTML- und ggf. Javascript-Code.
Der Browser interessiert sich für diese Art von Dynamik aber kein bisschen.

Zitat:
am besten wärs wenn ich außerhalb der schleife diese onclick bzw. onchange Sachen ansprechen könnte, damit ich dann sagen kann z.B:
if Button1.onclick then loeschen();
if Button2.onclick then loeschen();
...
So würde nur der Datensatz gelöscht werden den man auch will.
Bist du dir sicher, dass du den Unterschied zwischen server- und clientseitig schon verstanden hast ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #8 (permalink)  
Alt 03-04-2006, 16:34
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.734
Kropff befindet sich auf einem aufstrebenden Ast
Standard

also wenn du kein ajax einsetzt, mußt du die seite eh neu aufrufen. also kein onclick, bzw. onchange.

mach bei form action ein $_SERVER['PHP_SELF'] und aus type=button ein submit. dann überprüfst du mit name, welcher button gedrückt wurde und löschst den datensatz

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #9 (permalink)  
Alt 03-04-2006, 16:57
PHPhans
 Newbie
Links : Onlinestatus : PHPhans ist offline
Registriert seit: Apr 2006
Beiträge: 14
PHPhans ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also vielen Dank jetz bin ich viel schlauer !

Hm ok also ich probier mal die "selbstaufruf methode" nochmal aus, aber
muss ich mir doch JavaScript noch reinziehen. Falls jemand schnell ein ajax Lösung parat hat wäre ich sehr Dankbar. ajax scheint da sehr viel komfortabler zu sein.
Mit Zitat antworten
  #10 (permalink)  
Alt 03-04-2006, 17:04
PHPhans
 Newbie
Links : Onlinestatus : PHPhans ist offline
Registriert seit: Apr 2006
Beiträge: 14
PHPhans ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von wahsaga
Bist du dir sicher, dass du den Unterschied zwischen server- und clientseitig schon verstanden hast ...?
Das war nur um zu verdeutlichen was genau ich machen will, das ist klar dass das so net geht.
Mit Zitat antworten
  #11 (permalink)  
Alt 26-04-2006, 14:21
PHPhans
 Newbie
Links : Onlinestatus : PHPhans ist offline
Registriert seit: Apr 2006
Beiträge: 14
PHPhans ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Lösung mit "Selbstaufruf":

PHP-Code:
//tabelle = hans
//attribut(spalte) = wurst

//Prüft of beim Selbstaufruf der Update oder Delete Button gedrückt wurde und führt das entsprechende Statement aus
   
if  ( isset($_POST['delete']) ) {
   
$sql "delete from hans where ID = " $_POST["index"]. ";";
   
$result mysql_query($sql) OR die(mysql_error());
   }
   if  ( isset(
$_POST['update']) ) {
   
$sql "update hans set wurst = '"$_POST["eingabefeld"] ."' where ID = " $_POST["index"]. ";";
   
$result mysql_query($sql) OR die(mysql_error());
   }
//-------------------------------------------------------------------------------------------------

//holt sich die Datensätze aus der DB
$sql "SELECT * FROM hans order by 1 asc;"
$result mysql_query($sql) OR die(mysql_error());
//-----------------------------------------

if(mysql_num_rows($result)) { //prüft ob Datesätze vorhanden sind
  
while($ds mysql_fetch_assoc($result)) {    //holst sich ein Satz von result in $ds
//----Ausgabe der Eingabefelder(vorgelgt mit dem Satz aus der DB) und Buttons     
    
echo "<form method=\"post\" action=\"" $_REQUEST["SELF_PHP"] . "\"  name=\"Schleife\">
    <tr>
     <INPUT TYPE=\"hidden\" NAME=\"index\" VALUE=\""
.$ds["ID"]."\">
     <input name=\"eingabefeld\" size=\"50\" value=\""
.$ds["wurst"]."\" type=\"text\">
     <input type=\"submit\" name=\"update\" value=\"updatebutton\" class=\"block_button\">
     <input type=\"submit\" name=\"delete\" value=\"deletebutton\" class=\"block_button\">
   </tr>
   </form>"
;
  
//das form in der schleife ist nötig weil der bestimmte datensatz bearbeitet werden soll
//-----------------------------------------------------------------
  
}//while
}//if 
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Adsman Pro - Werbe-Manager V.1.1.0

Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebigem Format, Textanzeigen und Page-Peels mit umfangreichen Text und Flash-Effekte.

30.07.2019 rhs | Kategorie: PHP/ Bannerverwaltung
HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

30.07.2019 Berni | Kategorie: MYSQL/ Management
Top-Side.de Php Guest Book

Gästebuch mit Smilies, Ip Sperre und Spammschutz. Anzeige von Datum, Name, E-Mail, Homepage und Icq. Html ist deaktiviert.

26.07.2019 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:05 Uhr.