• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Java script php inklude

Sorry, dass ich so lange nicht antworten konnte, war gesundheitlich etwas entgleist. Nun habe ich mich wieder an mein Projekt gewagt, und musste feststellen, dass nach wie vor keine Lösung über Nacht sich eingeschlichen hat :D

Also nochmal:

Beschränken wir uns erst einmal auf 2 Checkboxen. Ich denke das Script kann sich beliebig oft erweitern lassen.

Ich habe also
Männlich
Weiblich

Klicke ich auf Männlich sollen eben nur alle Männer per

Code:
$("#div1").load("flirt_ausgabe.php?maenner="+maenner+"&frauen="+frauen);

geladen werden. Jetzt gilt es dabei, die Variablen entsprechend zu setzen. Maenner in diesem Fall auf 1, für true und frauen auf 0, für false. Den rest macht das Php Script dann.

Ich bin zu New für Ajax, um das alleine zu bewerkstelligen, bzw ich weiß nicht wie ich die Variablen setze.

Beispiel:

Code:
$(document).ready(function()
{
var maenner = 0;
var frauen = 0;
$('#suche_maenner').on('click change', function(){
var maenner = 1;
});

$('#suche_frauen').on('click change', function(){
var frauen = 1;
});

$("#div1").load("flirt_ausgabe.php?maenner="+maenner+"&frauen="+frauen);

});

Klar, dass funktioniert, aber die Variablen sind irgendwie nicht public, so dass ich sie am Ende der Funktionen abrufen kann, bzw verwerten kann. Also wie mache ich das ?!
Natürlich müsste in jede click change Funktion noch ne Abfrage wie die einzelne Variable war, und dann entsprechend umsetzen. Also beim Klick von 0 auf 1 oder von 1 auf 0.

Aber das funktioniert nicht so wie es oben ist, er aktualisiert nicht die div, bzw macht gar nix. Ich hoffe ihr habt mich verstanden und wisst Abhilfe.
 
Klar, dass funktioniert, aber die Variablen sind irgendwie nicht public
Du willst auch gar keine "public" Variablen haben.

Was du brauchst, ist eine Funktion, die in den Events aufgerufen wird und dabei ALLE Checkboxen ausliest:
Code:
$(document).ready(function(){
	var frauenCheckbox = document.getElementById("suche_frauen");
	var maennerCheckbox = document.getElementById("suche_maenner");
	function update(){
		var maenner = maennerCheckbox.checked? 1: 0;
		var frauen = frauenCheckbox.checked? 1: 0;
		$("#div1").load("flirt_ausgabe.php?maenner="+maenner+"&frauen="+frauen);
	}
	$('#suche_maenner, #suche_frauen').on('click change', update);
});
 
Eine Frage hätte ich dennoch: was ist denn nun, wenn ich zum Beispiel ein Textfeld mit einbeziehen wollen würde ?! Also sobald sich der Wert dieses ändert, bzw geändert wird, sollte es auch (unter Berücksichtigung der Checkboxes) mit an den Inklude als Parameter gehangen werden!?
 
... wobei man besser den Text noch durch encodeURIComponent() jagt, damit etwaige Sonderzeichen auch richtig übertragen werden.
 
Also irgendwie funktioniert das leider nicht genauso...eher gesagt es passiert gar nix ?!

hab es mal so probiert

Code:
$(document).ready(function()
{
	var frauenCheckbox = document.getElementById("suche_frauen");
	var maennerCheckbox = document.getElementById("suche_maenner");
	var groessevon = document.getElementById("suche_groesse_von");
	var groessebis = document.getElementById("suche_groesse_bis");
	function update(){
		var maenner = maennerCheckbox.checked? 1: 0;
		var frauen = frauenCheckbox.checked? 1: 0;
		var von = groessevon. [was hier ? ]

		$("#div1").load("flirt_ausgabe.php?maenner="+maenner+"&frauen="+frauen+"&groessevon="+von);
	}
	$('#suche_maenner, #suche_frauen, #suche_groesse_von').on('click change', update); // richtig so ?!
 
Okay habe den Fehler gefunden.

das problem nun ist nur, wenn ich eine 1 klicke, bleibt es bei null, gebe ich eine 2 ein (also 12) dann kommt die eins, also das ganze ein Tastendruck verzögert. ?!
Code:
$(document).ready(function()
{
	var frauenCheckbox = document.getElementById("suche_frauen");
	var maennerCheckbox = document.getElementById("suche_maenner");
	var groessevon = document.getElementById("suche_groesse_von");
	var groessebis = document.getElementById("suche_groesse_bis");
	function update(){
		var maenner = maennerCheckbox.checked? 1: 0;
		var frauen = frauenCheckbox.checked? 1: 0;
		var von = groessevon.value;

		$("#div1").load("flirt_ausgabe.php?maenner="+maenner+"&frauen="+frauen+"&groessevon="+von);
	}
	$('#suche_maenner, #suche_frauen, #suche_groesse_von').on('click change keydown', update);

		



});
 
aber nur wenn utf8 gesendet werden soll
Nein, immer. Was hat das mit UTF8 zu tun? Z.B. ein "&" muss immer maskiert werden. Und es ist gute Praxis, das immer zu maskieren.
dann kommt die eins, also das ganze ein Tastendruck verzögert.
keydown ist auch das falsche Event. Wenn dann, willst du keypress oder input verwenden, ABER du willst ganz sicher nicht, dass bei jedem Tastendruck ein Request gesendet wird. Also ich würde da einen Timeout machen, der nur dann einen Request startet, wenn z.B. 500ms nichts eingegeben wurde.
 
Ach so - ich dachte, dass du meinst, dass man nur maskieren muss, wenn man UTF-8 verwendet...

Dass encodeURiComponent UTF-8 erzeugt, steht auch so in den Spezifikationen. Und natürlich müssen die encodings zusammen passen. Aber auch escape, was eigentlich deprecated ist, kann Ausgaben produzieren, mit denen ein Latin-1 System nicht umgehen kann. Somit hast du mit diesem Encoding immer Probleme und kannst beliebige Benutzereingaben nicht weiterverarbeiten.

Also insgesammt noch ein Grund mehr, UTF-8 zu verwenden.
 
Zurück
Oben