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 Thema bewerten
  #16 (permalink)  
Alt 18-09-2007, 15:39
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du solltest ein solches select + hidden input feld aufbauen:
bsp id 20 / also 20te select-box

Code:
<select id="sel_20" onchange="DeineFunctionImHeader(document.getElementById('hid_20').value,this.value)">
   <option value="neu">....</option>
   <option value="gebraucht">....</option>
   ...
</select>
<input type="hidden" id="hid_20" value="neu"></input>
<!-- neu = istzustand aus db -->
damit müsste deine function beide werte bekommen.
func im header ungefähr so:
Code:
function DeineFunctionImHeader(originalwert,neuwert)
{
 alert ("original: "+originalwert+" , neu: "+neuwert);
}
__________________
**********
arkos
**********
Mit Zitat antworten
  #17 (permalink)  
Alt 18-09-2007, 19:08
Revolverheld
 Junior Member
Links : Onlinestatus : Revolverheld ist offline
Registriert seit: Mar 2007
Beiträge: 55
Revolverheld ist zur Zeit noch ein unbeschriebenes Blatt
Standard

SOOOO DANKESCHÖN... ich habe mein Ziel fast erreicht.
Habe das ganze nun mit einer ConfirmBox in JS gelöst.

PHP-Code:
<script type="text/javascript">
function 
Box(status) {
var 
answer confirm("Sind Sie sich sicher, dass Sie den Status auf " status " ändern möchten?");
if (
answer)
[
B]HIER MUSS WAS HIN[/B
else
location.reload()
}
</script> 
Reload muss sein, damit wenn der Userabbrechen drück, der Ursprungsstatus wieder steht. (Also wenn jemand auswählt von Neu auf Gebraucht, würd ja beim Abbrechen drücken trotzdem noch Gebraucht da stehen.)

Nun kommt die Frage der Fragen. Wie komme ich von JS wieder zu meiner PHP UPDATE Funktion? Die den Status dann wirklich in der DB ändert?!
Mit Zitat antworten
  #18 (permalink)  
Alt 18-09-2007, 19:19
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn du false zurückgibst sollte der alte Wert wiederhergestellt werden. Ansonsten gibst du true zurück und sendest das Formular nach allen Änderungen wieder ab (ein einfaches return confirm ( ... ) reicht eigentlich schon).
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #19 (permalink)  
Alt 19-09-2007, 11:08
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Revolverheld
PHP-Code:
<script type="text/javascript">
function 
Box(status) {
var 
answer confirm("Sind Sie sich sicher, dass Sie den Status auf " status " ändern möchten?");
if (
answer)
[
B]HIER MUSS WAS HIN[/B
else
location.reload()
}
</script> 
allerdings hast du in der lösung nun nicht den aktuellen status beachtet. siehst du davon nun ganz ab?
__________________
**********
arkos
**********
Mit Zitat antworten
  #20 (permalink)  
Alt 19-09-2007, 11:30
ZombieChe
 Member
Links : Onlinestatus : ZombieChe ist offline
Registriert seit: Apr 2004
Ort: Hannover
Beiträge: 225
ZombieChe ist zur Zeit noch ein unbeschriebenes Blatt
ZombieChe eine Nachricht über ICQ schicken
Standard

Wieso das ganze mit einem hidden Field lösen? Einfacher geht es doch, wenn der Funktion 2 Parameter übergeben werden.
PHP-Code:
function Box(status,oldStatus) {
var 
answer confirm("Sind Sie sich sicher, dass Sie den Status von "+oldStatus+" auf " status " ändern möchten?");
if (
answer) {
 
document.getElementById('Formularname').submit(); //Hier wird das Formular abgeschickt
 
return true//Der Vollständigkeit halber :-)
}
else {
 return 
false;

Den ersten kann er dann mit php direkt reinschreiben...wieso kompliziert....

Der Ablauf ist dann wie folgt:
Der Benutzer ändert einen Wert
1. Wird bestätigt
- Formular wird mit dem neuen Wert abgeschickt und kann dann mit deiner PHP UPDATE Funktion ausgewertet werden
- Seite wird mit den neuen Werten geladen, da der neue Wert nun in der DB steht
2. Wird nicht bestätigt
- formular wird nicht abgesendet
- Wert wird nicht geändert, da return false...(s. tontechnikers Beitrag)

Es bleibt jetzt dir überlassen, ob du für jedes Select ein eigenes Formular machst, oder ob du ein Formular für alle Selects machst...
letzterer Fall wäre etwas redundant, da alle Selects bearbeitet werden, im ersten Fall müsstest du halt die Id übergeben, die geändert werden muss.

Der Aufruf der JavaScript Funktion erfolgt in jedem Fall über:
PHP-Code:
<?php
//...
echo '<select onchange="return Box(this.value,\''.$db->line['status'].'\')">';
//...
?>
Mit Zitat antworten
  #21 (permalink)  
Alt 19-09-2007, 12:41
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du hast vollkommen recht. auf die einfache lösung, den istzustand gleich in den js-aufruf zu schreiben bin ich zu diesem zeitpunkt gar nicht gekommen... tze
__________________
**********
arkos
**********
Mit Zitat antworten
  #22 (permalink)  
Alt 19-09-2007, 13:06
Revolverheld
 Junior Member
Links : Onlinestatus : Revolverheld ist offline
Registriert seit: Mar 2007
Beiträge: 55
Revolverheld ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Super ich habe es nun ergänzt.
Mein Problem ist nun bei dem Formular, wie überge ich erstens den Wert Status und zweitens wie ordne ich es nun wieder dem Artikel zu? Wenn ich ein globales Formular habe in der ich das update vornehme?

PHP-Code:
document.getElementById('Formularname').submit(HIER DIE WERTE REIN ID STATUS); 
Wenn es fertig ist stelle ich das Script dann online (also zum downloaden) (=

Geändert von Revolverheld (19-09-2007 um 13:09 Uhr)
Mit Zitat antworten
  #23 (permalink)  
Alt 19-09-2007, 14:15
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mal ehrlich. hier wurden dir nun ziemlich gute hilfen gegeben. es wäre nun schön, wenn du dir das, was dir hier geliefert wurde, solange anschaust und nachvollziehst, bis du es verstehst.

wenn du es verstanden hast, wird dein jetziges problem keins mehr sein.

das is nicht bös gemeint, aber meiner meinung nach bringt es dir auch nichts, wenn wir dir hier alles "fertigschreiben"...
__________________
**********
arkos
**********
Mit Zitat antworten
  #24 (permalink)  
Alt 20-09-2007, 11:02
ZombieChe
 Member
Links : Onlinestatus : ZombieChe ist offline
Registriert seit: Apr 2004
Ort: Hannover
Beiträge: 225
ZombieChe ist zur Zeit noch ein unbeschriebenes Blatt
ZombieChe eine Nachricht über ICQ schicken
Standard

So...ich werd mal ein paar Links posten, die dir hoffentlich helfen, das ganze abzuschließen...

Schau nach, wieso dein PseudoCode nicht funktionieren kann:
JavaScript submit() Funktion

Mach dich damit vertraut, wie Formulardaten - insbesondere Auswahllisten - übertragen werden:
Formularverarbeitung

Wenn du dein Formular erst einmal soweit hast, dass es sich absendet, gib dir z.B. über var_dump($_POST) die übermittelten Daten aus, um zu sehen, wie du damit umgehen kannst.

Ich empfehle dir bei einem "globalen" Formular, allen Selects den selben Namen als Array mit der ID als Index zu geben. z.B.
PHP-Code:
<?php
//...
echo '<select name="Auswahl['.$db->line->id.']" ...>';
//...
?>
Mit den Links und Tips sollte es lösbar sein. Falls nicht, wird deine nächste Frage sicher konkreter ausfallen und nicht mehr darauf abzielen, fertigen Code serviert zu bekommen...
Das Forum sollte wirklich nur die Fragen klären, die nicht in angemessener Zeit über Goggle und Manual zu klären sind...
Mit Zitat antworten
  #25 (permalink)  
Alt 25-09-2007, 18:22
Revolverheld
 Junior Member
Links : Onlinestatus : Revolverheld ist offline
Registriert seit: Mar 2007
Beiträge: 55
Revolverheld ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So ich habe nun wieder weiterversucht das ganze hinzubekommen, bisher erfolgslos!

Es hapert noch erheblich bei der übergabe der Werte in onchange

'<select id="'.$selcounter.'" onchange="return Box(this.value,'.$line->status.')">';

Wenn ich nur this-value übergebe dann gehts, aber das ist ja nicht mein Ziel!
'<select id="'.$selcounter.'" onchange="return Box(this.value)">';

Auch mit dem Formular bin ich noch nicht wirklich weitergekommmen. Da ich bis jetzt noch nicht geschafft habe von JS-Teil die Werte weiter zu bekommen. Klar ist eine fertige Lösung nicht immer da richtige, aber ich komm hier einfach weiter und brauch einfach mal was woran ich mich orientieren kann.
Mit Zitat antworten
  #26 (permalink)  
Alt 26-09-2007, 11:52
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Revolverheld


'<select id="'.$selcounter.'" onchange="return Box(this.value,'.$line->status.')">';

Wenn ich nur this-value übergebe dann gehts, aber das ist ja nicht mein Ziel!
'<select id="'.$selcounter.'" onchange="return Box(this.value)">';
[/B]

was geht nicht??? ordentliche fehlerbeschreibungen sind das a und o...
hab nämlich heute frei, und glaskugel und kartenlege-set hab ich in deer firma
__________________
**********
arkos
**********
Mit Zitat antworten
  #27 (permalink)  
Alt 26-09-2007, 13:00
ZombieChe
 Member
Links : Onlinestatus : ZombieChe ist offline
Registriert seit: Apr 2004
Ort: Hannover
Beiträge: 225
ZombieChe ist zur Zeit noch ein unbeschriebenes Blatt
ZombieChe eine Nachricht über ICQ schicken
Standard

Du musst bei der JavaScript Variablenübergabe Strings ebenfalls als solche maskieren:

'<select id="'.$selcounter.'" onchange="return Box(this.value,\''.$line->status.'\')">';

sonst würde er eine Variable annehmen, die es nicht gibt...

btw.: Schau bitte immer erst in die JavaScript Fehler-Konsole und gib den Inhalt als Fehlerbeschreibung an. Wenn nichts drin steht, darfst du das natürlich auch mitteilen...das erleichtert hier allen die Arbeit und spart Zeit.

Geändert von ZombieChe (26-09-2007 um 13:05 Uhr)
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

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

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:03 Uhr.