Textbox Inhalt durch button verändern..

08/09/2013 00:27 {Skrillex}#1
Hallo Liebe Community.

Ich schreibe momentan eine Webmall für ein Spiel.

Ich bin soweit auch Recht zufriedenmit dem Ergebnis..

Ich möchte jedoch ein "neues" Feature installieren..

Undzwar habe ich eine Textbox, in der angegeben wird wie oft man dieses Item Kaufen möchte..

Die Code sieht wie folgt aus:
PHP Code:
<tr><td>Anzahl: </td><td><input type=\"text\" name='buylist[$item_ID]' size=\"1\" maxlength=\"7\"></td></tr> 
Dort muss man jedoch Die Zahl eintippen..

Das möchte ich aber nicht. Ich möchte das man über 2 Button + & Minus die Anzahl Regeln Kann..

Könnt mir da einer Helfen?

Gebe auch ein wenig e*gold..

Grüße

& Gute nacht^^
08/09/2013 01:18 Mikesch01#2
Naja mit Javascript halt :)

Code:
<script type="text/javascript">
  function calcItem(id, type) {
    var doc = document.getElementByID(id);
    if(type == "add" OR type == "") {
      doc.innerHTML += 1;
    }
    elseif(type == "sub") {
      if(doc.innerHTML > 0) {
        doc.innerHTML -= 1;
      }
    }
  }
</script>

  <button onclick="calcItem('numItems', 'sub');">-</button>
  <input type="text" id="numItems" />
  <button onclick="calcItem('numItems', 'add');">+</button>
08/09/2013 01:22 {Skrillex}#3
Quote:
Originally Posted by Mikesch01 View Post
Naja mit Javascript halt :)

Code:
<script type="text/javascript">
  function calcItem(id, type) {
    var doc = document.getElementByID(id);
    if(type == "add" OR type == "") {
      doc.innerHTML += 1;
    }
    elseif(type == "sub") {
      if(doc.innerHTML > 0) {
        doc.innerHTML -= 1;
      }
    }
  }
</script>

  <button onclick="calcItem('numItems', 'sub');">-</button>
  <input type="text" id="numItems" />
  <button onclick="calcItem('numItems', 'add');">+</button>
Funktioniert leider nicht..
08/09/2013 01:42 Mikesch01#4
Achso ups.

Code:
<script type="text/javascript">
  function calcItem(id, type) {
    var doc = document.getElementByID(id);
    if(type == "add" OR type == "") {
      doc.value += 1;
    }
    elseif(type == "sub") {
      if(doc.value > 0) {
        doc.value -= 1;
      }
    }
  }
</script>

  <button onclick="calcItem('numItems', 'sub');">-</button>
  <input type="text" id="numItems" value="1" />
  <button onclick="calcItem('numItems', 'add');">+</button>
oder auch leichter:

Code:
  <button onclick="document.getElementById('numItems').value -= 1;">-</button>
  <input type="text" id="numItems" value="1" />
  <button onclick="document.getElementById('numItems').value += 1;">+</button>
08/09/2013 01:55 {Skrillex}#5
Quote:
Originally Posted by Mikesch01 View Post
Achso ups.

Code:
<script type="text/javascript">
  function calcItem(id, type) {
    var doc = document.getElementByID(id);
    if(type == "add" OR type == "") {
      doc.value += 1;
    }
    elseif(type == "sub") {
      if(doc.value > 0) {
        doc.value -= 1;
      }
    }
  }
</script>

  <button onclick="calcItem('numItems', 'sub');">-</button>
  <input type="text" id="numItems" value="1" />
  <button onclick="calcItem('numItems', 'add');">+</button>
oder auch leichter:

Code:
  <button onclick="document.getElementById('numItems').value -= 1;">-</button>
  <input type="text" id="numItems" value="1" />
  <button onclick="document.getElementById('numItems').value += 1;">+</button>
Hallo,
Das 2 Funktioniert..

Jedoch wird die Zahl angehangen und nicht Addiert...

Bittwe um hilfe

Grüße
08/09/2013 05:27 boxxiebabee#6
Quote:
Originally Posted by ϟƘƦƖןןΣ✘ View Post
Hallo,
Das 2 Funktioniert..

Jedoch wird die Zahl angehangen und nicht Addiert...

Bittwe um hilfe

Grüße
PHP Code:
  <button onclick="var el = document.getElementById('numItems'); el.value = el.value <= 0 ? 0 : parseInt(el.value, 10) - 1;">-</button>
  <
input type="text" id="numItems" value="1" onkeyup="if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')" onchange="this.value = this.value <= 0 ? 0 : (this.value >= 100 ? 100 : this.value)" />
  <
button onclick="var el = document.getElementById('numItems'); el.value = el.value >= 100 ? 100 : parseInt(el.value, 10) + 1;">+</button
08/09/2013 10:20 {Skrillex}#7
Wie füge ich das nun hier ein?

Da ich ja den Javascript nicht in das php einfach einfügen kann..


PHP Code:
  //Anzahl gewaehlter Items in Array mit Key = ItemID schreiben
  
echo "<tr><td><input type=\"text\" name='buylist[$item_ID]' size=\"1\" maxlength=\"7\"></td>
        <td><img src=\""
.$item['img']."\"></td>
        <td><font color=\"#FD7100\">"
.$item['ItemTitle']."</font></td>
        <td><font color=\"#FD7100\">"
.$item['ItemDetail']."</font></td>
        <td><font color=\"#FD7100\">"
.$item['PriceNow']."</font></td></tr>"
08/09/2013 11:50 Mozo_#8
So sollte es gehen, hab es nicht getestet.

PHP Code:
echo "<tr><td><button onclick=\"var el = document.getElementById('numItems'); el.value = el.value <= 0 ? 0 : parseInt(el.value, 10) - 1;\">-</button> 
  <input type=\"text\" id=\"numItems\" value=\"1\" onkeyup=\"if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')\" onchange=\"this.value = this.value <= 0 ? 0 : (this.value >= 100 ? 100 : this.value)\" disabled /> 
  <button onclick=\"var el = document.getElementById('numItems'); el.value = el.value >= 100 ? 100 : parseInt(el.value, 10) + 1;\">+</button> </td> 
        <td><img src=\""
.$item['img']."\"></td> 
        <td><font color=\"#FD7100\">"
.$item['ItemTitle']."</font></td> 
        <td><font color=\"#FD7100\">"
.$item['ItemDetail']."</font></td> 
        <td><font color=\"#FD7100\">"
.$item['PriceNow']."</font></td></tr>"
08/09/2013 11:56 {Skrillex}#9
Funktioniert leider auch nicht :(
08/09/2013 14:27 Mikesch01#10
Der Code von boxxiebabee funktioniert doch perfekt!

Code:
<?php

 echo "<tr><td><button onclick=\"var el = document.getElementById('numItems'); el.value = el.value <= 0 ? 0 : parseInt(el.value, 10) - 1;\">-</button>".
"<input type=\"text\" name=\"buylist['".$item_ID."']\" id=\"numItems\" size=\"1\" maxlength=\"7\" value=\"1\" onkeyup=\"if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')\" onchange=\"this.value = this.value <= 0 ? 0 : (this.value >= 100 ? 100 : this.value)\" />".
"<button onclick=\"var el = document.getElementById('numItems'); el.value = el.value >= 100 ? 100 : parseInt(el.value, 10) + 1;\">+</button></td>".
"<td><img src=\"".$item['img']."\"></td>".
"<td><font color=\"#FD7100\">".$item['ItemTitle']."</font></td>".
"<td><font color=\"#FD7100\">".$item['ItemDetail']."</font></td>".
"<td><font color=\"#FD7100\">".$item['PriceNow']."</font></td></tr>"; 

?>
Bitte nächstes mal wenn etwas nicht funktioniert, auch angeben, was genau nicht geht ;)
08/09/2013 14:58 {Skrillex}#11
Quote:
Originally Posted by Mikesch01 View Post
Der Code von boxxiebabee funktioniert doch perfekt!

Code:
<?php

 echo "<tr><td><button onclick=\"var el = document.getElementById('numItems'); el.value = el.value <= 0 ? 0 : parseInt(el.value, 10) - 1;\">-</button>".
"<input type=\"text\" name=\"buylist['".$item_ID."']\" id=\"numItems\" size=\"1\" maxlength=\"7\" value=\"1\" onkeyup=\"if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')\" onchange=\"this.value = this.value <= 0 ? 0 : (this.value >= 100 ? 100 : this.value)\" />".
"<button onclick=\"var el = document.getElementById('numItems'); el.value = el.value >= 100 ? 100 : parseInt(el.value, 10) + 1;\">+</button></td>".
"<td><img src=\"".$item['img']."\"></td>".
"<td><font color=\"#FD7100\">".$item['ItemTitle']."</font></td>".
"<td><font color=\"#FD7100\">".$item['ItemDetail']."</font></td>".
"<td><font color=\"#FD7100\">".$item['PriceNow']."</font></td></tr>"; 

?>
Bitte nächstes mal wenn etwas nicht funktioniert, auch angeben, was genau nicht geht ;)
Hi,
Ja Funktionieren tuht er, ich habe total vergessen zusagen,dass der Ganze Code in einer Form action angegeben ist..


Das ist so insgesammt aus..


PHP Code:
//Alle auf aktiv gesetzten Angebote aus der GameMall Tabelle holen und anzeigen
$query_Item "SELECT * FROM GameMall WHERE Active = 'True'";
$result_Item mssql_query($query_Item);
echo 
"<form action=\"cart.php\" method=\"post\">";
while(
$item mssql_fetch_assoc($result_Item))
  {
  
$item_ID $item['ItemID'];
  
  
//Anzahl gewaehlter Items in Array mit Key = ItemID schreiben
echo "<tr><td><button onclick=\"var el = document.getElementById('numItems'); el.value = el.value <= 0 ? 0 : parseInt(el.value, 10) - 1;\">-</button> 
  <input type=\"text\" id=\"numItems\" value=\"1\" onkeyup=\"if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')\" onchange=\"this.value = this.value <= 0 ? 0 : (this.value >= 100 ? 100 : this.value)\" disabled /> 
  <button onclick=\"var el = document.getElementById('numItems'); el.value = el.value >= 100 ? 100 : parseInt(el.value, 10) + 1;\">+</button> </td> 
        <td><img src=\""
.$item['img']."\"></td> 
        <td><font color=\"#FD7100\">"
.$item['ItemTitle']."</font></td> 
        <td><font color=\"#FD7100\">"
.$item['ItemDetail']."</font></td> 
        <td><font color=\"#FD7100\">"
.$item['PriceNow']."</font></td></tr>
        </table></div>"
;        
  }

echo 
'<div class="clear"></div>';
  
//Ein Paar Buttons fuer Warenkorb, Einkaufshistorie und, wenn GM, Mall Admin
if ($lang_sel == 'en')
  {
  echo 
"<br><input type=\"submit\" value=\"Go to Cart\"> - <a href='logout.php'>Logout</a>";
  }
else
  {
  echo 
"<br><input type=\"submit\" value=\"Zum Warenkorb\">";
  }

if (
$lang_sel == 'en')
  {
  echo 
"";
  }
else
  {
  echo 
"";
  }

echo 
"</form>"
Sobald ich auf den + oder - button klicke wird leider die Form action ausgeführt..

Eine lösung?
08/09/2013 15:14 Tasiro#12
HTML Code:
<button onclick="...; return false;" />
Wenn ein Wert zurückgegeben wird, der zu false ausgewertet wird, wird die Standardaktion nicht ausgeführt: ein Link leitet nicht weiter, ein Formular wird nicht abgesendet.
Ich hielte es aber für besser, wenn auf onclick - Attribute verzichtet würde und stattdessen ein script - Element eingefügt würde...