• 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

EvilBen

New member
Hey Leute,

für eine Such Funktion nutze ich ein Formular (wer hätte das gedacht !?). Jetzt möchte ich, dass wenn ein Haken gesetzt wird, oder ein Wert eingegeben wird, per Ajax/JS direkt live die PHP Datei aktualisiert und die neuen Parameter übergibt.

Also grobes Beispiel:

[ ] Männlich
[ ] Weiblich
[ ] Alter
----------------------
PHP AUSGABE

Also Wenn jetzt Männlich angeklickt wird, sollen direkt alle Männer angezeigt werden. Gibt man zusätzlich ein Alter von 20 ein, sollen Alle 20 jährigen Männer angezeigt. Aber direkt ohne Umwege und ohne Reload.

Hat jemand ne Lösung für mich ?! Bzw ein Lösungsansatz!?
 
Zuletzt bearbeitet von einem Moderator:
Wenn du ohne Reload arbeiten willst, bleibt dir nicht viel übrig als mit AJAX zu arbeiten. Aber eine konkrete Frage habe ich jetzt aus deinem Beitrag nicht rauslesen können.
 
ok, ich habe gedacht, die frage sei verständlich:
ich suche eben eine Lösung mit Ajax abzufragen, welche checkbox wurde selektiert und das an die inkludierte php datei weiter zu geben, so dass die DB Abfrage entsprechend angepasst wird

- - - Aktualisiert - - -

Also im Prinzip so:

Ajax Var's:
Code:
var eins = document.getElementById('irgendwas').value;
var zwei = document.getElementById('irgendwas_anderes').value;

//php output
include "php.php?eins='".irgendwie wie var eins."'&zwei='".irgendwie var zwei."'";
 
es ist besser, wenn man konkrete fragen stellt. also z. b. ich erwarte dies und erhalte aber das, warum? oder warum zeigt die konsole mit diesem kommando diese fehlermeldung usw.
 
Sei mir nicht böse mikdoe, aber ich finde ich habe eine konkrete frage gestellt. Ich weiß nur nicht wie ich das ganze angehen soll ?! ich habe keinen code !?
ich frage doch nur, ob es möglich ist variablen in JS/Ajax zu setzen und sie irgendwie in einem php include mit anzuhängen....Wo ist das unverständlich ?!
 
wenn ich es aber per $.get mache, dann wird die php datei im background ausgeführt, oder ?

und das will ich nicht. Ich möchte das die Php datei eine Datenbank abfrage macht, und die jedesmal aktualisiert wenn am Suchformular etwas geändert wird.

Beispiel:

Seitenaufbau:

Suchformular
--------------
<- nicht sichtbarer JS/Ajax Teil ->
include "Ausgabe.php";

Jetzt wird im Formular oben, beispielsweise das Geschlecht geändert. Von Männlich auf Weiblich.

Bedeutet: Der User macht zuerst Männlich weg, die Ausgabe.php zeigt ALLE Geschlechter an.
Als nächstes wählt er weiblich, dann zeigt er nur noch die Frauen an.

Dann gibt er zusätzlich das Alter ein, zum Beispiel 25. Dann wird natürlich auch beim eingeben von 2 alle Nutzer mit einem alter von 2 angezeigt (selbstverständlich fällt diese Abfrage im Prinzip aus, weil es keine Nutzer unter 18 geben wird). Wenn er dann noch die 5 eingegeben hat wird direkt auf alle Frauen mit 25 aktualisiert.

Sollte das mit $.get möglich sein, dann zeige mir das bitte anhand eines Beispiels. Denn soweit ich weiß, wird damit nur eine Datei im Hintergrund ausgeführt.

Deswegen sage ich ja, ich stelle es mir so vor:

Das Java- oder Ajaxscript soll schauen ob etwas verändert wurde.Wird jetzt, wie in obigem Beispiel beschrieben die Männer deaktiviert, dann setzt er var m = 0, andererseits auf 1, als Beispiel.

Und dann am Ende soll eben die Php Datei ausgegeben werden. Es reicht ja wenn ich sie mit php include, aber wie greife ich auf gesetzte Variablen im Script überhalb drauf zu und wie sollte das Script für die Variablen ungefähr aussehen.
Ich habe schon probiert durch sowas das ganze "abzufragen"

Code:
var manner = 0;
$('#suche_maenner').click(function(){
var manner = 1;

});


Beispiel php:
Code:
//Falls ein Mann gewählt wurde
if( wie frage ich hier die JS Variable ab ?! ){

$sql = "SELECT * FROM Mitglieder WHERE Geschlecht = Mann";
}
.
.
.
versuch ich dann aber unterhalb des "click" events auszugeben, bleibt sie auf 0, und das ist ja nicht sinnvoll^^
Ich hoffe ihr habt mich nun verstanden
 
Zuletzt bearbeitet:
wenn ich es aber per $.get mache, dann wird die php datei im background ausgeführt, oder ?
was verstehst du unter "im background"?

Ich möchte das die Php datei eine Datenbank abfrage macht, und die jedesmal aktualisiert wenn am Suchformular etwas geändert wird.
ja und? wo ist das problem?

Bedeutet: Der User macht zuerst Männlich weg, die Ausgabe.php zeigt ALLE Geschlechter an.
Als nächstes wählt er weiblich, dann zeigt er nur noch die Frauen an.
das klingt eher so, als hättest du schon alle daten auf clientseite und willst nur die anzeige filtern

Wenn er dann noch die 5 eingegeben hat wird direkt auf alle Frauen mit 25 aktualisiert.
ok, wie heißt die seite?

Sollte das mit $.get möglich sein, dann zeige mir das bitte anhand eines Beispiels. Denn soweit ich weiß, wird damit nur eine Datei im Hintergrund ausgeführt.
damit wird ein request zum server gesendet.
wenn du aber schon alle daten auf clientseite hast, kannst du dir das spaaren und musst diese nur noch filtern

Das Java- oder Ajaxscript soll schauen ob etwas verändert wurde.Wird jetzt, wie in obigem Beispiel beschrieben die Männer deaktiviert, dann setzt er var m = 0, andererseits auf 1, als Beispiel.
das m sendest du mit dem alter und allen anderen daten an den server, machst deine db-abfrage. in der antwort stehen dann alle personen die du anzeigen musst.

//Falls ein Mann gewählt wurde
if( wie frage ich hier die JS Variable ab ?! ){
die js-variable hast du als get-parameter an den server gesendet und kannst sie mit $_GET["m"] abfragen, wenn du m als getparameter gesendet hast
 
Lieber EvilBen

wenn ich das richtig verstehe, hast du ein Formular, mit der die Liste aller User gefiltert werden kann. Klassischerweise hättest du deine Filter in einem HTML-Formular und schickst das Formular an irgendein verarbeitendes PHP-Script, welches die Liste der User ausgibt, entsprechend den Filterkriterien.

vereinfachter, beispielhafter Ablauf mit Reload:
User: Aufruf /user.php
User: Auswählen der Filter
User: Submit -> z.B. /user.php?men=yes&women=no&age=
user.php: Liest die GET-Parameter und stellt eine Abfrage zusammen, Männer ja, Frauen Nein, Alter egal
user.php: Formatiert das HTML und gibt es aus
User: sieht die fertige Liste

Ich nehme an, dass du soweit schon gekommen bist. Obiges beinhaltet ein Reload, nun schauen wir uns das ganze mit Ajax an (ohne Reload):

User: Aufruf /user.php
User: Auswählen der Filter
JavaScript: Bei Änderung der Filter wird ein AJAX-Request (jQuery z.B. $.get/$.ajax) ausgelöst, an /user.php - zusammen mit allen Werten des Formulars, die du per JS ausliest. z.B. $.get('/user.php?men=yes&women=no&age=&ajax=true', ...)
user.php: List die GET-Parameter und stellt eine Abfrage zusammen, Männer ja, Frauen nein, Alter egal
user.php: Formatiert das HTML der Liste (und nur der) und gibt es aus
Javascript: Erhält die Antwort und ersetzt das HTML der aktuellen Liste/des Ergebnisbereiches mit dem zurückgelieferten
User: sieht die fertige Liste

Ich denke das wichtige hier ist das JavaScript, welches vor allem im Falle eines Formulars den Submit abfangen muss, dann einen AJAX-Request auslöst und die Antwort in das entsprechende Element füllt. Am PHP-Script serverseitig solltest du eigentlich wenig ändern müssen, bis auf dass es nur das Listen-HTML zurückgeben soll; dafür hab ich der Ajax-URL im Beispiel oben ein ajax=true hinzugefügt – das könnte dein PHP-Script überprüfen und statt Seiten-HTML, nur das HTML der Liste ausgeben.

Eleganter, bzw. einfacher zu pflegen, wäre natürlich das Auslagern des user-Scripts sodass die Seite die der User anzeigt und die API für das Zurückliefern der Ergebnisse zwei verschiedene URLs sind.

Hat dir das weitergeholfen?

Beste Grüsse

Dominique
 
Danke Dominique so hast du es nicht nur richtig formuliert, sondern auch explizit beschrieben was ich will.
Nein Php stellt kein Problem, mir geht es nur um den Script Teil.
Was für mich nun ein kleines Problem darstellt, ist, dass ich mit dem $.get Teil nicht weiterkomme, bzw wie ich es mache dass ich kein sichtbaren Reload habe. Ich habe das ganze nämlich schon ausgelagert.
"search.php" ist die Seite, die im Prinzip alles beinhaltet, und dann gibt es die "search_filter.php", die unten alles ausgeben soll, also unterhalb des Filter Formulars.
kann ich einfach in der in $.get hinterlegten Datei eine Ausgabe starten, und diese wird dann angezeigt ? Das funktioniert nämlich bisher nicht bisher.
Und der nächste Punkt: Mache ich jetzt quasi für jeden Suche - Options - Punkt ein $('#suche_maenner').click(function(){
oder kann man das eleganter zusammen fassen ?!

okay vergisst das mit dem $.get. Ich lade die Datei einfach in ein Div!, aber dennoch wie kann ich jedes Feld überprüfen bevor ich den load ausführe ?

Habe es so probiert, aber dann ist Männer immer null

Code:
$(document).ready(function()
{
	var maenner = 0;
$('#suche_maenner').click(function(){
	var maenner = 1;
});
	 $("#div1").load("flirt_ausgabe.php?maenner="+maenner);


});
 
Zuletzt bearbeitet:
Lieber EvilBen

ich denke es würde mehr Sinn ergeben, wenn wir auf Codeteilen von dir weiterdiskutieren würden.

1. Genau! Wenn du einen GET-Request an search_filter.php machst, mit $.get, kannst du die Ausgabe irgendwo auf der Seite platzieren
Code:
$.get( "ajax/test.html", function( data ) {
  $( ".result" ).html( data );
  alert( "Load was performed." );
});

(Beispiel direkt aus der jQuery-Dokumentation https://api.jquery.com/jquery.get/)

2. Das ist doch schon was. Du kannst höchstens am Selektor und am Event noch basteln, z.B. $('#filterform input, #filterform select).on('click change keyup') - allerdings ist das dann schon sehr umfassend. Gegen ein gezieltes Setzen der Events spricht eigentlich nichts:

Code:
$('#suche_maenner, #suche_frauen').on('click change', function(){...});
$('#alter').on('keyup change', function(){...});

Grüsse

Dominique
 
Okay, wir kommen der Sache näher, nur geht er bei delektieren nicht zurück auf 0.

Code:
$(document).ready(function()
{
	var maenner = 0;
	$('#suche_maenner, #suche_frauen').on('click change', function(){
			var maenner = 1;
			 $("#div1").load("flirt_ausgabe.php?maenner="+maenner);

		});



});

bzw, ich sollte jetzt noch abfragen, welches geklickt wurde stimmt es ?
 
ne sind checkboxen kkapsner.

es gibt aber nun noch ein kleines anderes problem.
Er setzt in obigem Beispiel Männer jetzt auf 1, und gibt das dann auch korrekt aus. Über eine IF Bedingung, kann ich abfragen, ob maenner = 0 ist und dann auf 1 setzen, andererseits auf 0. Das Problem ist jetzt nur, wie bekomme ich die ganzen anderen checkboxen mit rein? Also ich müsste quasi jede checkbox abfragen:
wurden Männer gewählt ? Maenner = 1
wurden Frauen gewählt ? Frauen = 1

und dann am ende eben der Include in die Div. Wie realisiere ich das aber ? Bzw, mir würde es ja schon reichen, wenn die Variablen irgendwie public wären.

Also ich frage jede Box ab, dann wieder mit If... auf 0 oder 1 setzen, und dann am Ende den include.
 
ne sind checkboxen
Dann ergibt aber dein GET-Parameter keinen Sinn. Du musst ja dann den Status beider Checkboxen übertragen.

wie bekomme ich die ganzen anderen checkboxen mit rein?
Du arbeitest doch mit jQuery und hast doch wahrscheinlich auch ein Formular, wo die ganzen <input>s drin liegen. Dann könntest du serialize() verwenden.

und dann am ende eben der Include in die Div. Wie realisiere ich das aber ?
Das hast du doch schon mit dem load()...
 
Hallo Leute,

ich habe mir den Beitrag durchgelesen und irgendwie versteh ich nur Bahnhof.
Kann einer kurz einen Codesnipsel zeigen, der folgendes kann.

1. Ich lade eine Seite mit einem Javascript und lese ein Input feld aus.
2. Den Wert von einem Inputfeld lege ich in eine JS Variable
** Bis hier hin komm ich selber klar **

3. Ohne Reload möchte ich die JS Variable in eine PHP Variable legen

** Von Hier ab komm ich selber weiter **
4. danach will ich mit der php Variable eine Abfrage machen.


Wäre echt geil wenn einer kurz und knapp die Lösung hätte, weil im Netz finde ich nur irre viele Codes wo der eine sagt, mach es so und der andere meint nein mach es so. *verwirrend*
Also würde mich freuen wenn ihr mir helfen könntet.
 
Also so wie ich sehe muss man immer mit einer kleinen php Datei arbeiten die das Request auffängt.
Naja ich versuch mein Glück danke.
 
Zurück
Oben