News - Features - Downloads - Forum - Team - Support - Switch View: Screen
Login - Registrierung - Passwort vergessen

Antworten: 5
Seite [1]
Rouven89


Going for pro




Beiträge: 539
# Thema - 05.03.2012 um 20:34 Uhr
hey - habe mal wieder eine frage - bin nirgends fündig geworden.. und zwar möchte ich mehrere werte aus einem select formular speichen und auslesen - einzelne werte sind ja einfach zu speichern aber wie man mehrere werte speichert weiß ich nicht

das was ich bis jetzt herausgefunden habe ist das man im formular hinter den name="xx[]" eckige klammern setzt damit php weiß das es sich um ein array handelt und nicht die werte überschreibt sondern abspeichert in einem array

wenn ich aber jetzt einen oder mehrere werte abspeichern will …wird nichts mehr abgespeichert (habe bei phpmyadmin nachgeguckt und da steht nichts ) woran liegt das? (vorher ohne eckige klammern wurde wenigstens noch der letzte wert gespeichert)

wäre super wenn mir jemand da weiterhelfen könnte

mfg


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Rouven89 am 05.03.2012 um 20:45 Uhr (2x Editiert)
Inaktiv
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 1 - 05.03.2012 um 21:00 Uhr
Du musst dann natürlich auch in deinem PHP Code, auf Array Abfrage umstellen.

Vorher war es Bsp.:
 
1.
1. / 2. / ... 
 $select $_GET['select'];

Jetzt musst du aber auf Array umbauen
 
1.
2.
3.
4.
5.
6.
1. / 2. / ... 
 $select $_GET['select'];
ist nicht mehr ein Wertsondern dahinter versteckt sich nun ein Array.
Schreib dadrunter einfach 
echo '<pre>';
print_R($select);

dann siehst du, wie es nun aufgebaut ist.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Zuletzt editiert von Fr33z3m4n ClanSphere Team am 05.03.2012 um 21:01 Uhr (1x Editiert)
Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 2 - 05.03.2012 um 21:28 Uhr
hm verstehe ich nicht so ganz - vorher hieß es so name="anmerkung_adressaten" und jetzt heißt es ja so name="anmerkung_adressaten[]" - ich verstehe irgendwie nicht wie man die werte abspeichert bzw überhaupt da vorgeht

bei einzelnen werten war es ja immer so - das ich den übergebenen value überprüft habe und wenn der so ist wie gewollt dann führe ich eine aktion durch zb.
 
1.
2.
3.
4.
5.
6.
1. / 2. / ... 
 
if($_POST['anmerkung_color'] == "orange"){
      
$cs_anmerkung['anmerkung_color'] = "orange";
        
führe weitere sachen aus...
      }


aber wenn ich jetzt mehrere werte abspeicher kann ich die ja nicht so leicht abfragen da es ja zick verschiedene varianten geben kann wie die angeordnet sind.. wie ermittel ich denn die werte und vorallem wie speicher ich die dann ab? ein array durchlaufen ist ja nicht schwer - aber ich brauch ja erstmal werte in der datenbank - nur weiß einfach nicht wie ich die darein bekomme



------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 3 - 05.03.2012 um 21:54 Uhr
 
1.
1. / 2. / ... 
 $_POST['anmerkung_color']

Ist kein einzelner String mehr, sondern ein Array.

So einfach bekommste die nicht in die Datenbank. Daher musste vorher das POST als Array durchlaufen, und dir die einzelnen angeklickten Werde rausholen.

Wie gesagt, print_r($_POST['anmerkung_color']); zeigt dir, was angeklickt ist, mehr nicht.
Dann musste die entweder einzeln in die datenbank speichern, oder als implode-String abspeichern.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 4 - 05.03.2012 um 22:04 Uhr
okay besten dank =) das hilft mir weiter


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Inaktiv
|
WH!T3


King for a day




Herkunft: Ostrhauderfehn
Beiträge: 327
# Antwort: 5 - 28.10.2012 um 15:34 Uhr
Ich habe auch gerade hier ein Problem, selbe Frage.

Ich bin so vorgegangen, ich lese den Dropdown aus einer Tabelle aus,

PHP

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
1. / 2. / ... 
  
$cs_lang 
cs_translate('productplanned');

$data = array();

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

  
$cs_productplanned['users_id'] = $account['users_id'];
  
$cs_productplanned['products_id'] = $_POST['products_id'];
  
$cs_productplanned['productplanned_suppliers'] = $_POST['productplanned_suppliers']; 
  
$cs_productplanned['productplanned_info'] = $_POST['productplanned_info']; 

.
.
.
.

if(!empty(
$error) OR !isset($_POST['submit'])) {

  foreach(
$cs_productplanned AS $key => $value)
  
$data['propla'][$key] = cs_secure($value);

  
$data['productplanned']['info'] = $cs_productplanned['productplanned_info'];

  
$data_products cs_sql_select(__FILE__,'products','products_name, products_id',0,'products_name',0,0);
  
$data_products_count count($data_products);
  
  for (
$run 0$run $data_products_count$run++)
  
$data['products'] = cs_dropdownsel($data_products$cs_products['products_id'], 'products_id');

.
.
.


Meine tpl

.
.
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
1. / 2. / ... 
 
  
<tr>
    <
td class="leftc">{icon:lkw} {lang:suppliers}</td
    <
td class="leftb">
    <
select name="productplanned_suppliers[]" size="10" multiple="multiple">
     <
option value="Nein">----</option>{loop:products}
     <
option value="{products:products_id}">{products:products_name}</option>{stop:products}
    </
select>
    </
td>
  </
tr>
.
.


In der Datenbank wird "Arra" gespeichert, wie muss ich weiter vorgehen?!

Ich sitze da jetzt schon wieder .. nicht lachen .. 3 Stunden dran , hab gefühlte 200 Seiten offen aber irgendwie komme ich nicht voran :/


EDIT: So zig Std. später hab ich mal was ausm profile abgeschaut funzt aber auch nicht :/

mehr... +-


php
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
1. / 2. / ... 

<?php
// ClanSphere 2010 - www.clansphere.net
// $Id$

$cs_lang cs_translate('productplanned');

$data = array();

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

  
$cs_productplanned['users_id'] = $account['users_id'];
  
$cs_productplanned['products_id'] = $_POST['products_id'];
  
$cs_productplanned['productplanned_start'] = $_POST['productplanned_start']; 
  
$cs_productplanned['productplanned_customer'] = $_POST['productplanned_customer']; 
  
$cs_productplanned['productplanned_info'] = $_POST['productplanned_info'];
   
  
$suppliers = array();
  
$suppliers_count = isset($_POST['suppliers']) ? count($_POST['suppliers']) : 0;

  
$canhid = array('Nein,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179');
  for(
$sc 0$sc $suppliers_count$sc++) {
    if(
in_array($_POST['suppliers'][$sc],$canhid)) {
      
$suppliers[] = $_POST['suppliers'][$sc];
    }
  }

  
$error '';

  if(empty(
$cs_productplanned['products_id']))
    
$error .= $cs_lang['no_name'] . cs_html_br(1);    
    
}
else {

  
$cs_productplanned['products_id'] = 0;
  
$cs_productplanned['productplanned_start'] = '';
  
$cs_productplanned['productplanned_customer'] = 'Nein';
  
$cs_productplanned['productplanned_info'] = 'Keine Information';  
}

if(!isset(
$_POST['submit'])) {
  
$data['head']['body'] = $cs_lang['body_create'];
}
elseif(!empty(
$error)) {
  
$data['head']['body'] = $error;
}

if(!empty(
$error) OR !isset($_POST['submit'])) {

  
$suppliers array_flip($suppliers);
  
  foreach(
$cs_productplanned AS $key => $value)
  
$data['propla'][$key] = cs_secure($value);
  
  
$data['propla']['info'] = cs_secure($cs_productplanned['productplanned_info']);
  
  
$data_products cs_sql_select(__FILE__,'products','products_name, products_id',0,'products_name',0,0);
  
$data_products_count count($data_products);
  
  for (
$run 0$run $data_products_count$run++)
  
$data['products'] = cs_dropdownsel($data_products$cs_products['products_id'], 'products_id');
   
  
$data_products2 cs_sql_select(__FILE__,'products','products_name, products_id',0,'products_name',0,0);
  
$data_products2_count count($data_products2);
  
  for (
$run 0$run $data_products2_count$run++)
  
$data['products2'] = cs_dropdownsel($data_products2$cs_products2['products_id'], 'products_id');
  
 
  echo 
cs_subtemplate(__FILE__,$data,'productplanned','create');
  
}
else {
    
  
$cs_productplanned['productplanned_suppliers'] = implode(',',$suppliers);
    
  
$cs_productplanned['productplanned_since'] = cs_time();

  
$productplanned_cells array_keys($cs_productplanned);
  
$productplanned_save array_values($cs_productplanned);
  
cs_sql_insert(__FILE__,'productplanned',$productplanned_cells,$productplanned_save);
  
  
cs_redirect($cs_lang['create_done'],'productplanned','center');
}



tpl

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
1. / 2. / ... 
 
.
.
  <
tr>
    <
td class="leftc">{icon:lkw} {lang:suppliers}</td
    <
td class="leftb">
    <
select name="suppliers[]" size="10" multiple="multiple">
     <
option value="Nein" selected>Nein</option>{loop:products2}
     <
option value="{products2:products_id}">{products2:products_name}</option>{stop:products2}
    </
selectFunktioniert noch nicht !!
    </
td>
  </
tr>
.
.



EDIT2:

Guten Film geschaut, nochmal dran und die Lösung gefunden



 
1.
2.
3.
4.
5.
6.
7.
8.
1. / 2. / ... 
 

  $sup 
= isset($_POST['suppliers']) ? $_POST['suppliers'] : '0';   
  
$suppliers2 implode(',',$suppliers);
  
$cs_productplanned['productplanned_suppliers'] = $sup;




kurz und knapp


------------------
Mfg
Pascal

Zuletzt editiert von WH!T3 am 29.10.2012 um 12:35 Uhr (3x Editiert)
Inaktiv
|
Antworten: 5
Seite [1]


Sie müssen sich registrieren, um zu antworten.


ClanSphere Project - Mailus - Imprint - Disclaimer - Scriptinfo