Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Übergabe von Werten PHP-JS an die nächste Seite - Datenbank -Datei oder Mail

Frage Entwicklung PHP

Mitglied: Schimpy

Schimpy (Level 1) - Jetzt verbinden

06.02.2010, aktualisiert 20.04.2010, 5661 Aufrufe, 20 Kommentare

Übergabe von Werten PHP-JS an die nächste Seite - Datenbank -Datei oder Mail

01.
<form action="warenkorb.php" method="post"
02.
<table border="0"
03.
<? 
04.
				$sql = "SELECT * FROM sm_snacks"
05.
				$result = mysql_query($sql); 
06.
				while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
07.
				{ ?> 
08.
				<tr> 
09.
				<td><?=$row['name'];?></td> 
10.
				<td><div " id="<?=$row['name'];?>">0</div></td> 
11.
				<td><a href="#" onclick="document.getElementById('<?=$row['name'];?>').innerHTML-=-1;return false">+1</a></td> 
12.
				<td><a href="#" onclick="document.getElementById('<?=$row['name'];?>').innerHTML-=+1;return false">-1</a></td> 
13.
				</tr><? 
14.
15.
?></table> 
16.
<input type="submit" value="Absenden"
17.
</form> 
18.
 
Hallo !

Ich habe eine Tabelle erstellt, in der Snacks stehen
Mars, Snickers, Twix dahinter ist eine Zahl " 0 " und dahinter ist ein Button für "+1" und ein Button" für -1

wenn man jetzt hinter dem Mars auf +1 klickt, wird der Wert um 1 erhöht...
am Ende klickt man auf den Absende Button
und die Werte werden übermittelt
wie ist mir eigentlich egal - hauptsache irgendwie )

ich schaffe es nicht, die Werte an eine neue Seite zu übermitteln
habs jetzt auch schon mit $_POST und HTTP_POST_VARS probiert
keine Chance.... wo drin stehen die Werte??? m.E. in <div id="<?=$row['name'];?>">
aber die Werte kann ich nicht auslesen

dem div ein "name" zu geben, bringt auch nix
Mitglied: Arano
06.02.2010 um 19:01 Uhr
Guten Abend Schimpy,

Soll das ein Shop werden ? Also ein richtiger online Shop über den was bestellt werden kann ?
Ach du heiliger Strohsack

Nee sorry, du solltest erst einmal lernen bevor du ernsthaft irgendwelche Projekte umsetzen möchtest, erst recht wen es dabei um einen Shop o.ä. geht bei dem finanzieller Schaden entstehen kann !
Und so wie ich das sehe, muss du __ganz vorne anfangen__ bei HTML und CSS.
http://de.selfhtml.org/


~Arano
Bitte warten ..
Mitglied: Schimpy
06.02.2010 um 19:14 Uhr
tjoa danke für deine Antwort
aber damit kann ich nicht viel anfangen

soll kein Shop werden, dafür würd ich osCommerce nehmen

ich will einfach nur den Wert hochzählen ( funktioniert ja bereits )
und diesen dann an eine neue seite übergeben...
Bitte warten ..
Mitglied: 16568
06.02.2010 um 19:15 Uhr
Besser kann man hier auch nicht antworten


Lonesome Walker
Bitte warten ..
Mitglied: Arano
06.02.2010 um 19:25 Uhr
Okay, wollen wir dir mal glauben...

dennoch wirst du nicht drum herum kommen lernen zu müssen !
Und das nicht weil ich das so empfinde, sondern weil dein Quelltext und Startposting es so aussagen.
(Ein div anstelle eines inputs....)

Den Link zu selfHTML habe ich ja schon gepostet, dort kannst du dich mal nach Formularen umsehen - dann solltest du den üblichen weg schnell finden.


~Arano
Bitte warten ..
Mitglied: Schimpy
06.02.2010 um 19:33 Uhr
mhhh
drücke ich mich so schlecht aus?

ich brauch keinen verweis auf selfhtml...

ich weiss wie man inputs nutzt und tue dies auch...
das dort oben ist nur eine möglichkeit den Wert um 1 zu erhöhen...

darum geht es aber auch überhaupt nicht...

ich würde gerne wissen wie ich die Werte übergebe...

mit $_POST['name'] geht es nicht, mit HTTP_POST_VARS auch nicht
über ein array bekomme ich es auch nicht hin...

wäre also nett, wenn man mich hier nicht kritisiert und links zu selfhtml.de schreibt
sondern einen Ansatz zum Daten auslesen gibt

danke
Bitte warten ..
Mitglied: dog
06.02.2010 um 19:45 Uhr
$_POST wird ausschließlich durch Werte gefüllt, die per <input> mit einem name-Attribut übergeben werden.

Was den Rest angeht: Da musst du wirklich noch lernen
Bitte warten ..
Mitglied: Arano
06.02.2010 um 19:49 Uhr
Zitat von Schimpy:
ich weiss wie man inputs nutzt und tue dies auch...

Zitat von Schimpy:
ich würde gerne wissen wie ich die Werte übergebe...

Doch doch, den Links scheinst du schon nötig zu haben, denn du widersprichst dir selber was mich darauf schließen lässt das du es eben nicht weisst oder gerade ziemlich auf dem Schlauch stehst.

Wir sprechen hier doch von einem Formular <form> ... </form> in dem Mengen angegeben werden die anschließend an eine weitere Seite übergeben werden sollen !
Das Absenden des Formulares geschieht mittels eines Mausklicks auf einen <input type="submit"> Button, soweit ist das auch richtig. Aber die Werte eines Formulares stehen in weiteren <input> Feldern, inputs verschiedener Typen: text, radio, image, file, ect.
Eben das und welcher Typ wie und wofür zu gebrauchen ist steht auf selfHTML - deine Lösung !

01.
<form method="post"> 
02.
  <input type="text" name="menge_twix" value="0"><br> 
03.
  <input type="submit" value="Bestellen"> 
04.
</form>
Und ja, __jetzt__ könnte man die Daten in PHP mittels $_POST weiterverwenden aber soweit warst du ja noch gar nicht.


~Arano
Bitte warten ..
Mitglied: Schimpy
06.02.2010 um 19:53 Uhr
okay, jetzt kommen wir der Sache schon näher

das _POST nur mit input geht, wusste ich wirklich nicht... ich arbeite immer mit input und POST und hab jetzt zum ersten mal das <div> benutzt
daher dachte ich, dass ich das auch über die POST Variable bekomme... weils innerhalb des FORM steht....

aber ich brauch ja die beiden zeilen

<td><div id="<?=$row['name'];?>">0</div></td>
<td><a href="#" onclick="document.getElementById('<?=$row['name'];?>').innerHTML-=-1;return false">+1</a></td>
<td><a href="#" onclick="document.getElementById('<?=$row['name'];?>').innerHTML-=+1;return false">-1</a></td>

um den Wert hochzuzählen...
ich könnte natürlich den "value" wert im input type="text" nehmen, dieser würde ja übergeben und ich hätte den Wert

aber wie zähle ich diesen hoch?!?!
Bitte warten ..
Mitglied: Arano
06.02.2010 um 20:14 Uhr
Ahh, siehste :-P

Also ich denke mir schon was bei dem was ich Schreibe, Antworten in denen schon die komplette Lösung in mundgerechten Stücken zerteilt und vorgekaut wurde sind doch ohne jeglichen lern Effekt, weder das aktuelle Problem betreffend noch für zukünftige Probleme wenn die Person nie lernt selber zu suchen weil man ihr die Quellen nicht nennt. Google und Co sind als Antworten eh fürn Arsch, da hätte der Antwortende lieber die klappe halten sollen.

Aber nun zu deiner nächsten Frage es gibt Formatierungshilfen:
01.
<td><input id="name" name="menge['name']" value="0"></td> 
02.
<td><a href="#" onclick="document.getElementById('name').value+=1;return false">+1</a></td> 
03.
<td><a href="#" onclick="document.getElementById('name').value-=1;return false">-1</a></td>
Habe das nur im Browser kopiert und geändert, ist also ungetestet aber sollte funktionierten.


~Arano
Bitte warten ..
Mitglied: Schimpy
06.02.2010 um 20:23 Uhr
finds nett dass du mir hilfst

und ja mir ist bewusst, dass ich lernen muss und nur lerne wenn ich nicht kopiere sondern selber das köpfchen einschalte und probiere
hab ich auch durchaus vor !

aber dein Code kapier ich nur Ansatzweise )

meines erachtens geht das nicht:
name="menge['name']" <<< da muss doch was dazwischen sein?

bei 'name' würd ich jetzt den Wert aus der Datenbank einfügen...
<?=$row['name'];?>

da es bei mir ja nicht nur um "Mars" geht sondern um Mars,Snickers, Twix, Bounty, etc.

prob is auch -> der wert im input feld wird nicht hochgezählt...
Bitte warten ..
Mitglied: Arano
06.02.2010 um 21:03 Uhr
Ja stimmt, habe beim absenden schon vermutet das ich das doch vorher hätte ausprobieren sollen, gleich kommt meine Testversion.

Die Verwendung von eckigen Klammern ist okay, das erzeugt in PHP dann direkt ein mehrdimensionales Array das die entsprechenden Daten enthält.
Ja genau, die Namen werden dann durch die richtigen ersetzt.

Ja, das die Werte in den Feldern nicht hochgezählt werden war meine Vermutung beim absenden. Das liegt daran, das die Felder ja TEXT enthalten aber mit Text kann man nicht Rechnen, dazu braucht man Zahlen. In Javascript ist das "+" ja zum rechnen und zusammenfügen von Zeichenketten da.
Nunja, es folgt eine getestete Version mit einem Beispiel für das erstellen mehrdimensionaler PHP-Arrays von HTML aus.
01.
<html> 
02.
  <head> 
03.
    <title>add</title> 
04.
    <script type="text/javascript"
05.
      <!-- 
06.
        function add_one(ID) 
07.
08.
            item = document.getElementById(ID); 
09.
            item.value = 1+parseInt(item.value); 
10.
11.
        function remove_one(ID) 
12.
13.
            item = document.getElementById(ID); 
14.
            item.value = parseInt(item.value)-1; 
15.
16.
      --> 
17.
    </script> 
18.
  </head> 
19.
  <body> 
20.
   
21.
  <?php 
22.
    if(TRUE===isset($_POST['menge'])) 
23.
24.
        echo '<pre>'
25.
        print_r($_POST['menge']); 
26.
        echo '</pre>'
27.
28.
  ?> 
29.
   
30.
  <form action="" method="POST"
31.
    <input type="text" id="mars" name="menge['mars']" value="0"
32.
    <a href="#"onclick="add_one('mars'); return false;">mehr</a> - 
33.
    <a href="#"onclick="remove_one('mars'); return false;">weniger</a><br> 
34.
    <input type="text" id="twix" name="menge['twix']" value="0"
35.
    <a href="#"onclick="add_one('twix'); return false;">mehr</a> - 
36.
    <a href="#"onclick="remove_one('twix'); return false;">weniger</a><br> 
37.
    <input type="text" id="snickers" name="menge['snickers']" value="0"
38.
    <a href="#"onclick="add_one('snickers'); return false;">mehr</a> - 
39.
    <a href="#"onclick="remove_one('snickers'); return false;">weniger</a><br> 
40.
    <br> 
41.
    <input type="submit"
42.
  </form> 
43.
   
44.
  </body> 
45.
</html>
~Arano
Bitte warten ..
Mitglied: Schimpy
06.02.2010 um 21:27 Uhr
wow, supi - klappt einwandfrei...

jetzt hast du ja in dem formular, jeden Riegel einzelnd da stehen...
dort könnte ich ja meine schleife nutzen und dort wo jetzt ein Riegelname wie z.B. Mars, Snickers, etc. steht
meine Variable $row['name']; einfügen oder?

und wie ist jetzt der Name der Variable die an die nächste Seite übergeben wird?

$_POST(menge['snickers']) ??

??

normalerweise ist ja der "name" die Variable - also $_POST('name')
wie ist das jetzt hier mit der eckigen Klammer?
Bitte warten ..
Mitglied: Schimpy
06.02.2010 um 21:29 Uhr
okay ich seh grad...

$test = $_POST['snickers']; << egal was ich da eintrage..
es kommt immer

Array
(
[\'mars\'] => 4
[\'twix\'] => 3
[\'snickers\'] => 3
)


ist ja perfekt... nur... wie hast du das gemacht??? )
thx!!
Bitte warten ..
Mitglied: Arano
06.02.2010 um 21:44 Uhr
Ich ? Das war PHP *mit finger zeig*

$_POST ist ein Array, das sämtliche Feldes eines vorher abgesandten Formulares
01.
<?php 
02.
 
03.
// Über den Name dieses Feldes bekommt man in PHP den Wert des Feldes 
04.
<input name="snickers" value="5"
05.
<input name="mars" value="4"
06.
$_POST = array
07.
    'snickers' => 5, 
08.
    'mars' => 4, 
09.
); 
10.
 
11.
 
12.
<input name="menge[]" value="3"
13.
<input name="menge[]" value="15"
14.
<input name="menge[]" value="50"
15.
$_POST = array
16.
    0 => 3, 
17.
    1 => 15, 
18.
    2 => 50, 
19.
); 
20.
 
21.
 
22.
<input name="menge['snickers']" value="5"
23.
<input name="menge['mars']" value="6"
24.
<input name="menge['twix]" value="2"
25.
$_POST = array
26.
    'menge' = array
27.
        'snickers' => 5, 
28.
        'mars' => 6, 
29.
        'twix' => 1, 
30.
31.
); 
32.
 
33.
?>
Bitte warten ..
Mitglied: Schimpy
06.02.2010 um 21:47 Uhr
ich habs grad gesehen ->>>> print_r($_POST['menge']);

stand mittendrin und ich dachte ich es hätte es oben über meine Variable ausgegeben, war aber garnicht so

dürfte jetzt funktionieren

big thx !!!!!!!!!!!
Bitte warten ..
Mitglied: Schimpy
06.02.2010 um 21:56 Uhr
doch noch ein Problem...

mit print_r geb ich das ganze array aus - das hab ich kapiert...
aber ich kann es nicht an eine variable übergeben, da es ja ein array ist und da was mehr drin steht ;)

kann ich es irgendwie mit der mail() Funktion per Mail schicken?

oder in ner Datenbank speichern? dann müsste ich wahrscheinlich das array wieder stück für stück auslesen oder?
Bitte warten ..
Mitglied: Arano
06.02.2010 um 22:07 Uhr
Klar doch, das ist doch das schöne an einem Array !

01.
<?php 
02.
 
03.
// enthält alles POST-Formularvariablen 
04.
$_POST 
05.
 
06.
// enthält nur den teil ab "menge", also mars, snickers, twix 
07.
$_POST['menge'
08.
 
09.
// enthält einen bestimmten Wert 
10.
$_POST['menge']['mars'
11.
 
12.
/* 
13.
  So kann man übersichtlich auf die einzelnen Werte zugreifen. 
14.
  Aber auch ganze Gruppen einfach weiterreichen: 
15.
*/ 
16.
$bestellte_mengen = $_POST['menge']; 
17.
echo $bestellte_menge['snickers'
18.
// Ausgabe z.B.: 5 
19.
?>
~Arano


EDIT
Doppelpostinsg müssen ncihts sein, man kann seine Beiträge in der Regel bearbeiten
Bitte warten ..
Mitglied: Schimpy
06.02.2010 um 22:22 Uhr
sorry, ich bins gewohnt, wenn ich zwei mal hintereinander poste, dass die beiträge zusammengefügt werden
war länger nicht mehr hier, werds mir wieder angewöhnen

hatte es so:

$mars_wert = $_POST['menge']['mars'];

echo $mars_wert;

dann müsste er mir ja eigentlich den Wert ausgeben, der bei Mars stand....

tut er aber nüsch, kommt nix bei raus

er gibt maximal "Array" aus...
Bitte warten ..
Mitglied: Arano
06.02.2010 um 22:56 Uhr
Oh, wieder mein Fehler.

Bei der Namensgebung des <input>s habe ich in den eckigen Klammern auch die einfachen Anführungszeichen benutzt, diese einfach weglassen - aber nur beim HTML Teil !
01.
<input name="menge[snickers]" value="5">

~Arano
Bitte warten ..
Mitglied: Schimpy
07.02.2010 um 10:07 Uhr
kein prob
hat alles bestens geklappt

vielen dank!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
JavaScript
Übergabe einer php-Variable an JS

Frage von Rabauke84 zum Thema JavaScript ...

JavaScript
gelöst Dropdownfeld auslesen und mit AJAX und JS an PHP senden (7)

Frage von ITFlori zum Thema JavaScript ...

PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...