JavaScript Multiple Checkbox übergeben

-Rayz-

Lieutenant
Registriert
Okt. 2010
Beiträge
907
Hallo,

ich habe eine Checkbox in der man mehrere Einträge auswählen kann.

PHP:
<?php
						$sql="SELECT CAID,title FROM category";
						$rs = $conn->Execute($sql);	
						print '<select style="width:100%" name="category" size="6" multiple>';
						if($rs===false) die(mysql_error());
							while(!$rs->EOF){								
								print "<option  value=".$rs->fields[0].">".$rs->fields[1]. "</option>";
								$rs->MoveNext();
							}
					?>


und hier wird überprüft, welche Einträge ausgewählt wurden:

PHP:
function getSelected() {
        var strSel = "";		
		var selected = new Array();
		var index = 0;
		for(var i=0;i<document.forms[0].category.options.length;i++){
			if(document.forms[0].category.options[i].selected){			
				
				index = selected.length;
				selected[index] = new Object;				
                selected[index].value = document.forms[0].category.options[i].value;
               
			}
		}
        return selected;
    }

Diese Werte lasse ich mir hier zum Testen ausgeben:

PHP:
function request($Radio){
		var sel = getSelected();
        var strSel = "";
        for (var item in sel)       
            strSel += sel[item].value + "\n";
            alert("Selected Items:\n" + strSel);
			
		var title_cat = $('input[name=title_cat]');		
		var data = 'title_cat=' + title_cat.val();					
		
			$.ajax({
				type: "POST",
				url: "facharbeiten_edit.php?Form=sent",
				data: data,
				success: function(data){
					$("#content").html(data);
				}
			});
		
		return false;
	}

Das klappt auch alles ganz gut. Die richtigen Werte werden mir auch ausgegeben. Mein Problem besteht nun darin, diese Werte in eine Datenbank zu schreiben. Ich müste also "var data" noch um die Werte erweitern und in der Datei"facharbeiten_edit.php" würde ich mri dann die Werte per $_POST holen aber wie übergebe ich denn per Post ein Array? Wenn es mehr als ein Wert ist, müsste ich ja auch mehr als nur ein Datensatz in die Datenbank einfügen.

Hoffe das mein Problem verstanden wird ^^
 
Ich hoffe, ich habe es nun richtig verstanden, dass du fragst, wie man in PHP den POST einer multiplen Checkbox ausliest. :D

HTML:
<select multiple name=multiple size=5>
<option>Bla</option>
<option>Blubb</option>
<option>Jux</option>
</select>

PHP:
if($posts = $_POST["multiple"]) {
  foreach($posts as $post) {
    // In $post ist nun der aktuelle Wert aus der Checkbox gespeichert
   echo($post . "<br>");
  }
}

Das gäbe dann Folgendes aus:

Bla
Blubb
Jux
 
Das wäre wohl meine nächste Frage gewesen ;)
Mein Problem ist diese Stelle:

PHP:
  var title_cat = $('input[name=title_cat]');        
        var data = 'title_cat=' + title_cat.val();                    
        
            $.ajax({
                type: "POST",
                url: "facharbeiten_edit.php?Form=sent",
                data: data,
                success: function(data){
                    $("#content").html(data);
                }
            });

Hier muss ich nämlich die Werte der Checkbox übergeben um sie danach mit $_POST benutzen zu können. Die Werte die ich sonst übergebe stehen in data drin. Eine Funktion die mir die Werte der Checkbox ausgibt habe ich ja bereits geschrieben aber ich weiß nicht wie ich diese Werte nun über $.ajax bzw in data speichern und übergeben kann.
 
Ich verstehe dein Problem nicht so recht. Um die Übergabe brauchst du dich doch gar nicht kümmern, wenn du ein Form abschickst...

In deinem Fall mit Ajax sollest du aus der Data Variable ein Array machen und ebenso füllen. Die Übergabe funktioniert gleich. Irgendwie vermischt du POST und GET die ganze Zeit...
 
Wo vermische ich denn POST und GET? Ich übergebe mit Ajax doch alles per POST.. mein Formular selber wird nicht abgeschickt.

PS: den Link schau ich mir mal an ^^
Ergänzung ()

Das mit dem serialize() ist ja klasse wenn ich es denn zum laufen bekomme.

PHP:
var str = $("form").serialize();
		alert(str);

Ausgabe ist: degree=bachelor&title_thema=test&meta_thema=+&prev_thema=+&excerpt_thema=+&category=1&category=2&title_cat=+

und hier wollte ich diese Werte dann übergeben:

PHP:
	$.ajax({
				type: "POST",
				url: "facharbeiten_edit.php?Form=sent",
				data: $('#form').serialize(),
				success: function(data){					
					$("#content").html(data);

				}
			});

allerdings komme ich an die Werte nicht ran. Weder mit Post noch mit GET...
 

Ähnliche Themen

Zurück
Oben