Form Logindaten via Ajax senden.

B

BloodSteam

Guest
Moin,
Ich hab viel gelesen, jedoch am Ende ist alles dasselbe.

Die Daten muss ich als POST an die PHP Datei senden und da kommt auch eine Rückmeldung. Problem ist nur, wie bekomme Ich die ganzen Inputs?
Ich hab was von FormData() gelesen, jedoch kommt bei mir "es ist keine Funktion" etc.

Code:
	$("#login").submit(function(e){
		e.preventDefault();
		
		$.ajax({
		  url: "/sys/login.sys.php",
		  type: "POST",
		  data: {},
		  success: function(response){
			  /* Change input color if username is free/taken */
			  console.log(response);
		  }
		});
	});
 
Code:
    $("#login").submit(function(e){   
        var _form = $(this);
        $.ajax({
          url: "/sys/login.sys.php",
          type: "POST",
          data: _form.serialize(),
          success: function(response){
              // Hier irgendwas machen, wenn Login fehl schlägt oder passt, bspw. Umleitungen oder Alerts.
          }
        });
        
        e.preventDefault(); oder return false;
    });
 
Code:
    $("#login").submit(function(e){   
        var _form = $(this);
        $.ajax({
          url: "/sys/login.sys.php",
          type: "POST",
          data: _form.serialize(),
          success: function(response){
              // Hier irgendwas machen, wenn Login fehl schlägt oder passt, bspw. Umleitungen oder Alerts.
          }
        });
        
        e.preventDefault(); oder return false;
    });

Also mit
Code:
var _form = $(this);
nehme Ich den ganzen Input des Formulars? Dass wusste Ich nicht.

Kannst du mir euch netterweise sagen wie Ich ein select option zum laufen bringne kann?

Also es soll nach einer Reihenfolge verlaufen und dass alles sollte mit AJAX funktionieren.

Code:
<table>
  <tr>
    <td><label for="hersteller">Hersteller</label></td>
    <td>
      <select id="hersteller" name="hersteller">
	<?php
		include_once '../dbc.php';
		$sql = "SELECT hersteller FROM cars";
		$result = $conn->query($sql);

		if ($result->num_rows > 0) {
			// output data of each row
			while($row = $result->fetch_assoc()) {
				echo '<option value="'.$row['hersteller'].'">'.$row['hersteller'].'</option>';
			}
		} else {
			echo "0 results";
		}
		?>
	</select>
    </td>
  </tr>
  <tr>
    <td><label for="serie">Serie:</label></td>
    <td>
      <select id="serie" name="serie">
		<option value="5er">5er</option>
		<option value="3er">3er</option>
	</select>
    </td>
  </tr>
  <tr>
    <td><label for="modell">Modell:</label></td>
    <td>
      <select id="modell" name="modell">
		<option value="f10">F10</option>
	</select>
    </td>
  </tr>
  <tr>
    <td><label for="baujahr">Baujahr:</label></td>
    <td>
      <input id="baujahr" type="text" name="baujahr">
    </td>
  </tr>
  <tr>
    <td><label for="aussenfarbe">Außenfarbe:</label></td>
    <td><input id="aussenfarbe" name="aussenfarbe" type="text"></td>
  </tr>
  <tr>
    <td><label for="innenfarbe">Innenfarbe:</label></td>
    <td><input id="innenfarbe" name="innenfarbe" type="text" placeholder="Farbe der Plastikteile."></td>
  </tr>
</table>

Die Hersteller füge Ich mit php hinzu was auch ohne Probleme funktioniert.
Jetzt will Ich diees so machen, nachdem man den Hersteller auswählt sollten alle "Serien" von zb BMW angezeigt werden aus der gelisteten Datenbank.

Datenbank : Hersteller / Serie / Modell / Baujahr.
Also wenn jemand "BMW" auswählt, zeigt es nur die BMW Serien an, nachdem man die Serie auswählt, sollten dann die ganzen Modelle angezeigt werden.

Wie sollte überhaupt die SQL aussehen?
Code:
"SELECT * FROM cars WHERE hersteller='$hersteller'"
?
 
Ich hab folgendes versucht:

Code:
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST') {
	include_once '../dbc.php';
	
	$hersteller = mysqli_real_escape_string($conn, $_POST['hersteller']);
	$serie = mysqli_real_escape_string($conn, $_POST['serie']);
	$modell = mysqli_real_escape_string($conn, $_POST['modell']);
	$baujahr = mysqli_real_escape_string($conn, $_POST['baujahr']);
	

	if($_POST['hersteller']){
		
		$sql = "SELECT * FROM cars WHERE hersteller='$hersteller'";
		$result = mysqli_query($conn, $sql);
		$resultCheck = mysqli_num_rows($result);

		if($resultCheck > 0){
			while($row = $result->fetch_assoc()) {
				echo '<option value="'.$row['hersteller'].'">'.$row['hersteller'].'</option>';
			exit();
			}
		}
	}

	
} else {
	echo "Failed.";
	exit();
}

Code:
$(document).ready( function() {
	
	function selectAjax(){   
        $.ajax({
          url: "konfig.php",
          type: "POST",
          data: $(this).val(),
          success: function(response){
              console.log(response);
          }
        });
    }
});

Code:
<select id="hersteller" name="hersteller" onChange="selectAjax()">

@EDIT

Hier bekomme Ich den Input wenigstens in die Konsole.

Code:
$(document).ready( function() {
	
	$('#konfig select').change(function(){
		console.log($(this).val());
	});
	
});
 
Zuletzt bearbeitet:
1. Also "SELECT * FROM" ist generell doof. Vor allem zur Entlastung des Planers der Datenbank sollte man immer die gewünschten Felder angeben.
2. Benutze statt dem mysqli_escape-Krempel doch besser PDO mit Prepared-Statements. Das erspart dir viele manuelle Prüfungen und auch etwas Code. ^^


Wenn du schon jQuery nutzt:
Code:
<select id="hersteller" name="hersteller">


Code:
<script>
(function($, document) {
    $(document).on("change", "select#hersteller", function() {
        $.ajax({
            url: "konfig.php",
            type: "POST",
            data: $('option:selected', $(this)).val(),
            success: function(response){
                console.log(response);
            }
        });
    });
}(jQuery||$, document));
</script>


Aber wenn ich das richtig sehe, brauchst du das alles für eine kommerzielle Seite, daher bin ich in Sachen Hilfestellung dann mal generell raus hier. ^^
 
1. Also "SELECT * FROM" ist generell doof. Vor allem zur Entlastung des Planers der Datenbank sollte man immer die gewünschten Felder angeben.
2. Benutze statt dem mysqli_escape-Krempel doch besser PDO mit Prepared-Statements. Das erspart dir viele manuelle Prüfungen und auch etwas Code. ^^


Wenn du schon jQuery nutzt:
Code:
<select id="hersteller" name="hersteller">


Code:
<script>
(function($, document) {
    $(document).on("change", "select#hersteller", function() {
        $.ajax({
            url: "konfig.php",
            type: "POST",
            data: $('option:selected', $(this)).val(),
            success: function(response){
                console.log(response);
            }
        });
    });
}(jQuery||$, document));
</script>


Aber wenn ich das richtig sehe, brauchst du das alles für eine kommerzielle Seite, daher bin ich in Sachen Hilfestellung dann mal generell raus hier. ^^

Ja, Ich mach die Seite für meinen Vater da er keine Lust mehr auf Wordpress hat. Geld davon verdiene Ich keins hehe
 
Zurück