Checkboxen-Problem

m7media

since 2001
ID: 324964
L
7 Mai 2006
855
70
Guten morgen,

Ich hab hier einen Auftrag liegen und ich weiß nicht wie ich weiter machen soll. Es geht um Checkboxen - davon sind immer zwischen 1-10 auf einer Seite und ich möchte das wenn ein paar Aktiviert werden, die ID in eine Variable geschrieben wird. nochmal bildlich:

[ ] (ID1)
[x] (ID2)
[ ] (ID3)
[x] (ID4)
[ ] (ID5)

Dann soll in einer Variable nun "2;4" stehen ;) wie mach ich das?
 
Am besten gibst du den Auftrag zurück! Du schafst es noch nicht mal ein Problem so zu schildern das man dir überhaupt irgendwie helfen könnte.
 
PHP:
<?php
  if (!empty($_POST))
  {
    echo implode(';', $_POST['foo']);
    echo '<hr/>';
  }
?>
<form action="" method="post">
  <input type="checkbox" name="foo[]" value="1"/> 1<br/>
  <input type="checkbox" name="foo[]" value="2"/> 2<br/>
  <input type="checkbox" name="foo[]" value="3"/> 3<br/>
  <input type="checkbox" name="foo[]" value="4"/> 4<br/>
  <input type="checkbox" name="foo[]" value="5"/> 5<br/>
  <input type="submit" name="submit"/>
</form>
 
hmm. auf die schnell würde ich es wohl in etwa so machen:

Code:
// HTML-CODE >>>
...
<input type="checkbox" name="aBox1" value="x1">
<input type="checkbox" name="aBox2" value="x2">
<input type="checkbox" name="aBox2" value="x3">
<input type="hidden" name="aBoxMax" value="3">
...
// ENDE - HTMLCODE <<<

// PHP-CODE >>>
...
$maxBox = $_POST['aBoxMax'];
$activeBoxes = "";
for($count = 0;$count <= $maxBox;$count++) {[INDENT]if(isset($_POST["box".$count])) {[INDENT]$aciveBoxes .= $count.";";
[/INDENT]}
[/INDENT]}
...
// ENDE - PHP-CODE <<<
Fals du die Variable nicht erst setzen möchtest wenn das Formular verarbeitet wird, sondern sofort wenn die Box geklicked wird müsstest du wohl mit AJAX arbeiten.

gruß,
whirpool
 
AJAX wäre hier der totale Overkill. Mit'n bisschen stinknormalen Javascript kriegt man das auch hin. Da braucht's keine Kommunikation mit dem Server...
 
PHP:
<?php
  if (!empty($_POST))
  {
    echo implode(';', $_POST['foo']);
    echo '<hr/>';
  }
?>
<form action="" method="post">
  <input type="checkbox" name="foo[]" value="1"/> 1<br/>
  <input type="checkbox" name="foo[]" value="2"/> 2<br/>
  <input type="checkbox" name="foo[]" value="3"/> 3<br/>
  <input type="checkbox" name="foo[]" value="4"/> 4<br/>
  <input type="checkbox" name="foo[]" value="5"/> 5<br/>
  <input type="submit" name="submit"/>
</form>
danke, klappt ;)
 
srry 4 dp ;)

Nun habe ich eben diese Variable "1;2;3;4" und möchte z.b die Zahl 3 löschen. Da diese in der Mitte steht muss das Semikolon danach auch gelöscht werden. Allerdings steht die 3 nicht immer mitten drinn d.h wenn die 3 am ende steht kann ich ja kein semikolon mitlöschen.. wie ermittel ich nun also ob die 3 (bzw eine beliebige zahl) am ende steht, falls ja wird nur die zahl gelöscht und falls nein wird die zahl+; gelöscht :ugly:
 
PHP:
$string = '1;2;3;4';
$needle = '3';

$parts = explode(';', $string);
$index = array_search($needle, $parts);
if ($index!==false) {
  unset($parts[$index]);
}
$string = implode(';', $parts);