php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.10.2010, 14:56  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard [Erledigt] Wert erhöht sich nur einmal, aber Ausgangswert wird nie überschrieben

Hallo Leute,

sollte der Thread Titel nicht wirklich glücklich gewählt sein, dann gebt mir bitte einen Tipp wie ich ihn besser formulieren könnte und ich tue das sofort, mir ist nur kein besserer eingefallen.

Da ich in der Firma wo ich bald Praktikum mache auch viel mit JS zu tun haben werde, will ich bevor es los geht schon einmal ein wenig lernen damit ich nicht bei 0 da beginne.

Also habe ich mal was versucht, was leider nur etwas verunglückt klappt.

Hier erst mal der Code und dann die Erklärung dazu.

Ich packe alles in PHP Tags da Html, Js und PHP im Code vorkommt.

PHP-Code:
<?php
error_reporting
(E_ALL E_STRICT);
ini_set("display_errors"TRUE);

session_start();

$arr_Values = array(113213);

//$int_Wert1 = 113;
//$int_Wert2 = 213;
?>

<html>
<head>

<script language="javascript">
    
    window.onload = function (){
        
        <?php
        
foreach ( $arr_Values as $arr_Key => $arr_Value ) {
        
?>
            
            document.getElementById('edit_<?php echo $arr_Value?>').value = <?php echo $arr_Value?>;
            
        <?php
        
}
        
?>
    }
    
    function int_EditUp(val, idUp, idValue){
        
        var val_Data = val;
            
        if ( document.getElementById(idUp) ) {
            
            val_Data++;
            
            document.getElementById(idValue).value = val_Data;
        }
    }
    
    function int_EditDown(val, idDown, idValue){
        
        var val_Data = val;
            
        if ( document.getElementById(idDown) ) {
            
            val_Data--;
            
            document.getElementById(idValue).value = val_Data;
        }
    }
    
</script>

</head>

<body>

    <form action="" method="post" id="form1">
        
        <?php
        
foreach ( $arr_Values as $arr_Key => $arr_Value ) {
        
?>
        
            <input type="button" name="down" value="<" id="down_<?php echo $arr_Value?>" onclick="int_EditDown(<?php echo $arr_Value?>, 'down_<?php echo $arr_Value?>', 'edit_<?php echo $arr_Value?>')" />
            <input type="text" name="wert_<?php echo $arr_Value?>" style="width: 40px; text-align: center;" id="edit_<?php echo $arr_Value?>" />
            <input type="button" name="up" value=">" id="up_<?php echo $arr_Value?>" onclick="int_EditUp(<?php echo $arr_Value?>, 'up_<?php echo $arr_Value?>', 'edit_<?php echo $arr_Value?>')" />
            
            <br />
            
        <?php
        
}
        
?>

    </form>

</body>
</html>
Also, es werden da Werte zugewiesen und die werden per Js in die entsprechenden Felder vorgeladen, dass klappt auch super.

So dann soll man mit Pfeilbuttons die Werte herauf und herab setzen können, dass wiederum klappt nur einmal und das aber auch nicht richtig. Da ich grad eben nicht ganz so einen mega Text schreiben will und am Ende in Gefahr laufe mich unverständlich auszudrücken poste ich hier einfach mal einen Link wo ihr das testen könnt.

Es soll möglich sein das wenn ich zum Beispiel auf den Pfeil nach rechts drücke der Werte jedesmal um 1 erhöt wird und wenn ich wieder auf den Pfeil nach links drücke soll der erhöhte Wert wieder so oft runter gezählt werden wie man den Button drückt.

Mal ganz krzes Beispiel zum Verständnis.

Code:
wert = 113

3 mal druck button > , dann wert erhöht um drei = 116

1 mal druck button < , dann wert 116 erniedrigt um 1 = 115
Ich hoffe das macht das ganze etwas deutlicher. Momentan wird funktioniert nur ein einziger Button Druck in beide Richtungen, aber der Ausgangswert wird nie verändert, dass könnt ihr an dem Beispiel selber sehen.

Hier der Link http://www.lit-web.de/js_test/

Ich danke für jede Hilfe, denn ich weis nicht warum die Ausgangsvariable nie überschrieben wird, aber das soll sie ja letztenendes.

Gruß Litter

EDIT

Ich habe jetzt zum Test aber mal einen Submit Button gemacht und lasse mir da die Werte ausgeben, die sind aber auch verändert, so richtig verstehe ich das ganze nicht.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de

Geändert von litterauspirna (09.10.2010 um 15:02 Uhr).
litterauspirna ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.10.2010, 15:07  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Code:
int_EditUp(<?php echo $arr_Value; ?>,
Du übergibst immer den Startwert an die Funktion. Folglich inkrementierst/dekrementierst du immer denselben Wert um 1. Übergib doch stattdessen den aktuellen Wert aus der Textbox an die Funktion.
Asipak ist offline   Mit Zitat antworten
Alt 09.10.2010, 15:08  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von litterauspirna Beitrag anzeigen
Code:
<input type="button" onclick="int_EditDown(113, 'down_113', 'edit_113')" id="down_113" value="&lt;" name="down">
Du übergibst hier bei jedem Aufruf der Funktion erneut den Wert 113 für den Parameter val.

Zitat:
Momentan wird funktioniert nur ein einziger Button Druck in beide Richtungen, aber der Ausgangswert wird nie verändert
Jeder Buttondruck „funktioniert“, und jeder erhöht/erniedrigt den Ausgangswert um eins.
Dass von dir jedes mal wieder neu der gleiche Ausgangswert übergeben wird, dafür können die Buttons nichts.

Zitat:
Ich danke für jede Hilfe, denn ich weis nicht warum die Ausgangsvariable nie überschrieben wird
Die 113 im oben zitierten Code ist überhaupt keine Variable.


Wenn du eh schon den Startwert als value in die Inputfelder hineinschreibst - wieso nimmst du dann nicht gleich das (aktuelle) value in deiner Funktion, und rechnest da eins drauf bzw. ziehst eins ab ...?

(Dann müsstest du nur noch darauf reagieren, dass der Benutzer vielleicht was anderes als einen Integerwert ins Feld hineintippt, Stichwort parseInt, bzw. das gleich unterbinden, in dem du das Feld auf readonly setzt.)
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 09.10.2010, 15:18  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Ok du willst mir also sagen das ich mir die zwei Funktionen zum hoch und runter schalten des Wertes sparen kann, habe ich das richtig verstanden?

Und demzufolge das hoch un runter schalten in der ersten Funktion mit unterbringen soll oder wie?

Zitat:
Du übergibst immer den Startwert an die Funktion. Folglich inkrementierst/dekrementierst du immer denselben Wert um 1. Übergib doch stattdessen den aktuellen Wert aus der Textbox an die Funktion.
Wie übergebe ich das? Das sind meine ersten Einstiege in JS, leider tue ich mich ein enig schwer.

Gruß und Danke
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 09.10.2010, 15:21  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Ok du willst mir also sagen
Wenn ich ChrisB richtig verstanden habe, ist es das, was ich geschrieben habe, in ausführlich.

Zitat:
Wie übergebe ich das?
Anstatt die PHP-Variable hier einzutragen:
Code:
int_EditUp(<?php echo $arr_Value; ?>,
solltest du einfach den Wert aus dem Textfeld mit Javascript auslesen und dann als 1. Parameter übergeben.

Geändert von Asipak (09.10.2010 um 15:27 Uhr).
Asipak ist offline   Mit Zitat antworten
Alt 09.10.2010, 15:29  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Besten Dank, das hat mir geholfen und nun funktioniert es wie es soll.

Hier der code für die, die das vieleicht auch mal brauchen.

PHP-Code:
<?php
error_reporting
(E_ALL E_STRICT);
ini_set("display_errors"TRUE);

session_start();

$arr_Values = array(113213);

if ( isset( 
$_POST['send'] ) ) {

    unset(
$_POST['send']);
    
    foreach ( 
$_POST as $key => $val ) {
        
        echo 
$val.'<br>';
    }
}
?>

<html>
<head>

<script language="javascript">
    
    window.onload = function (){
        
        <?php
        
foreach ( $arr_Values as $arr_Key => $arr_Value ) {
        
?>
            
            document.getElementById('edit_<?php echo $arr_Value?>').value = <?php echo $arr_Value?>;
            
        <?php
        
}
        
?>
    }
    
    function int_EditUp(val, idUp, idValue){
        
        var val_Data = val;
            
        if ( document.getElementById(idUp) ) {
            
            val_Data++;
            
            document.getElementById(idValue).value = val_Data;
        }
    }
    
    function int_EditDown(val, idDown, idValue){
        
        var val_Data = val;
            
        if ( document.getElementById(idDown) ) {
            
            val_Data--;
            
            document.getElementById(idValue).value = val_Data;
        }
    }
    
</script>

</head>

<body>

    <form action="" method="post" id="form1">
        
        <?php
        
foreach ( $arr_Values as $arr_Key => $arr_Value ) {
        
?>
        
            <input type="button" name="down" value="<" id="down_<?php echo $arr_Value?>" onclick="int_EditDown(document.getElementById('edit_<?php echo $arr_Value?>').value, 'down_<?php echo $arr_Value?>', 'edit_<?php echo $arr_Value?>')" />
            <input type="text" name="wert_<?php echo $arr_Value?>" style="width: 40px; text-align: center;" id="edit_<?php echo $arr_Value?>" />
            <input type="button" name="up" value=">" id="up_<?php echo $arr_Value?>" onclick="int_EditUp(document.getElementById('edit_<?php echo $arr_Value?>').value, 'up_<?php echo $arr_Value?>', 'edit_<?php echo $arr_Value?>')" />
            
            <br />
            
        <?php
        
}
        
?>
        <br /><br />
        <input type="submit" name="send" value="Test" />

    </form>

</body>
</html>
Es lag wirklich nur daran das ich den falschen Wert übergeben habe.

Ich muss da an das geschreibesel mit JS erst mal gewöhnen.

Dankeschön.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Wert einer Dropdownlist auslesen Sermon JavaScript, Ajax und mehr 12 14.09.2010 13:27
[Erledigt] nur kleinstem wert einer person anzeigen mittels MIN? kamikaze Datenbanken 4 13.07.2010 22:07
[Erledigt] Neuen Wert auf alten addieren - SQL Tobby Datenbanken 3 01.03.2010 19:10
[Erledigt] jeden 5ten Wert aus db löschen Crowz PHP Tipps 2009 22 14.01.2010 16:07
Überprüfen ob vorhanden und ob ein feld einen bestimmten wert hat setech Datenbanken 1 17.12.2009 09:40
Datensatz nach Wert ändern? krisi12345 Datenbanken 1 13.11.2009 20:47
Wert in externer Datei speichern Abakay PHP Tipps 2008 6 04.12.2008 18:56
Fester Wert bei Registrierung festlegen themr Datenbanken 1 07.03.2008 14:41
nach grösstem (unbekannten) Wert suchen lindner Datenbanken 2 20.08.2006 22:13
Session-Variable wird überschrieben Jacks Rache PHP Tipps 2006 15 14.05.2006 13:42
array verarbeitung (schlag auf den hinterkopf) PHP Tipps 2007 9 16.11.2005 11:37
minus wert, plus wert in variable nutzen PHP Tipps 2005-2 5 22.10.2005 19:15
kleinsten und größten wert ermitteln niffi PHP Tipps 2005 14 26.04.2005 12:42
Wert automatisch erhöhen PHP Tipps 2005 5 13.02.2005 16:25
[Erledigt] Problem: per klick auf Button Wert erhöhen/verringern HTML, Usability und Barrierefreiheit 7 07.10.2004 08:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php error_reporting runterschalten, php button druck wert erhöht, echo ausgangswert, wie übergebe ich in php eine variable mit unbekanntem namen, php variable nur 1x überschreiben, input überschreiben nur 1 mal javascript, error reporting runterschalten, php variable ausgangswert überschreiben, ad ausgangswert, php wert % ausgangswert, bei klick sessionvariable wert erhöhen

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum