[FRAGE] AJAX Fehler bei dataType: "JSON"

kabikalu

New member
Hallo wie es schon im Betreff steht suche ich meinen produzierten Fehler..
Es soll eine AJAX Anfrage an die Datei data.php vollzogen werden, welche ein Array zurück an die ursprüngliche buchen.php gibt.
Einen echo Befehl anzuzeigen bekomme ich hin. Sobald ich jedoch die Zeile dataType: "json" hinzunehme und nichts ausgeben lasse, also nur das Array zurückbekommen möchte, passiert nichts mehr. Mit dem Array möchte ich später verschiedene svg Felder ansprechen und verändern. Um hier die Ankunft des Arrays zu überprüfen habe ich konkrete Werte benutzt um ein konkretes svg Quadrat zu ändern.

buchen.php
Code:
  	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
	<script type="text/javascript" src="js/main.js"></script>

    <script type="text/javascript">


$(document).ready(function() {

	$("#submit").click(function(){
           
                 $.ajax({
            		url: "data.php",
            		type: "POST",
            		data: {
			anreise: $("#ANREISE").val(),
                	abreise: $("#ABREISE").val() 
            	},
            	dataType: "JSON",
            	success: function (output) {
		//$('#ausgabe').html(output).show(); -> sobald ich diese einbinde und dataType: "JSON" wegnehme funktioniert es

		var meinObjekt = JSON.parse(output);
		var svgNS = "http://www.w3.org/2000/svg";
      		var rectangle = document.getElementById("platz1");
      		var parent = null;
      		var rect = null;


		parent = rectangle.parentNode;
        	parent.removeChild(rectangle);
        	rect = document.createElementNS(svgNS, "rect");
        	rect.setAttributeNS(null, "x", 1394);
       		rect.setAttributeNS(null, "y", 411);
        	rect.setAttributeNS(null, "width", 74);
        	rect.setAttributeNS(null, "height", 69);
        	rect.setAttributeNS(null, "fill", "red");
        	rect.setAttributeNS(null, "stroke", "black");
        	rect.setAttributeNS(null, "opacity", 100);
        	parent.appendChild(rect);

       }
        });

    }); 

    });
        	
    </script>

data.php
Code:
<?php
include('./includes/functions/functions.php');

if (connect_db()) {
    $array1 = array();
    $array2 = array();
    $ANREISE = mysql_real_escape_string($_POST['anreise']);
    $ABREISE = mysql_real_escape_string($_POST['abreise']);
    for($i = 0; $i < 49;$i++) {
        $array1[$i] = 0;
    } 
    
    for($i = 0; $i < 49; $i++) {
        if ($i < 10) {
            $SQL = ("SELECT B_MH_Nr FROM Buchung WHERE A_Datum ='" . $ANREISE . "' AND E_Datum='" . $ABREISE . "' AND B_MH_Nr = " . ($i + 1) . ";");
            $ergebnis = mysql_query($SQL);
            if (mysql_num_rows($ergebnis) > 0)
                $array1[$i] = 1;
            else
                $array1[$i] = 0;
        } else {
            $SQL = ("SELECT B_MH_Nr FROM Buchung WHERE A_Datum ='" . $ANREISE . "' AND E_Datum='" . $ABREISE . "' AND B_SP_Nr = " . ($i + 1) . ";");
            $ergebnis = mysql_query($SQL);
            if (mysql_num_rows($ergebnis) > 0)
                $array1[$i] = 1;
            else
                $array1[$i] = 0;
        } 
    } 
    if ($ANREISE == null || $ABREISE == null)
        echo "Bitte Datum auswählen";
    else {
        $array2 = json_encode($array1);
	echo $array2;
    } 
} 

?>
 
Zuletzt bearbeitet von einem Moderator:
* verschoben aus JS *

wenn du dataType: "JSON" gibst muss das php auch die response als json encodieren
 
Zuletzt bearbeitet:
Wenn du jQuery das parsen des JSON überlässt, musst du nicht selbst JSON.parse() aufrufen.

PS: Du solltest dann eigentlich auch Fehler in der Fehlerkonsole sehen.
 
Zurück
Oben