zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Wert über jQuery-Ajax an PHP übergeben

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 14.04.2014, 18:49
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.06.2010
Beiträge: 126
steve46 befindet sich auf einem aufstrebenden Ast
Standard Wert über jQuery-Ajax an PHP übergeben

Guten Abend,

Ich möchte gerne über PHP ein MySQL - Statement abfragen zum jeweiligen Monat, welches vorher über eine DropDown Liste ausgewählt wird.

Jedes Mal wenn sich der Wert der DropDown Liste ändert soll ein AJAX-Request das ganze erledigen. Jedoch schaff ich es nicht den Monatswert zu übergeben!

Mit freundlichen Grüßen,
steve46

HTML-Code:
$("#monthPicker").change(function() {
					var monthText = "month=" + $("#monthPicker option:selected").val();
					$.ajax({
						type: "POST",
						dataType: "json",
						data: monthText,
						success: function(result) {
							var obj = $.parseJSON(result);
							var table = '';
							for(var i = 0; i < obj.length; i++) {
								var price = obj[i].price;
								table += "<tr><td>"+obj[i].transactiondate+"</td><td>"+obj[i].company+"</td><td>"+$.number(price, 2)+"</td></tr>";
							}
							$("#mainText table").append(table);
							$("#mainText table").append("<tr><td colspan='3' class='sum'>Summe:</td></tr>");
							$("#mainText table").append("<tr><td colspan='3' class='sum'>Gesamtsumme 2014: <span class='sumView'></span></td></tr>");
							var n = $(document).height();
							$("html, body").animate({scrollTop: n}, 5000);
						}
					});
				});
PHP-Code:
<?php
    $month 
$_POST["month"];
    include(
"logic.php");
    
$conn = new DBConnection();
    
$conn->connectDatabase("localhost""test""test""");
    
$query "select * from transactions where transactiondate between '2014-".$month."-01' and '2014-".$month."-31' order by transactiondate asc";
    
$send mysql_query($query);

    
$data = array();

    while(
$row mysql_fetch_object($send)) {
        
$data[] = ($row); 
    }
    echo 
json_encode($data);
?>
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 14.04.2014, 19:58
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Was steht denn in
PHP-Code:
$month $_POST["month"]; 
drin.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 14.04.2014, 20:20
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.06.2010
Beiträge: 126
steve46 befindet sich auf einem aufstrebenden Ast
Standard

Das soll den String auslesen den ich im AJAX-Request bei data: monthText mitgegeben habe.
Mit Zitat antworten
  #4 (permalink)  
Alt 14.04.2014, 20:37
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von steve46 Beitrag anzeigen
Das soll den String auslesen den ich im AJAX-Request bei data: monthText mitgegeben habe.
Das weiss ich auch, aber was steht denn nun drin.
Lies es mit var_dump mal aus.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
  #5 (permalink)  
Alt 14.04.2014, 20:46
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.06.2010
Beiträge: 126
steve46 befindet sich auf einem aufstrebenden Ast
Standard

Ich bekomme diesen Error:

Notice: Undefined index: month in C:\......\jsondataTable.php on line 2
Mit Zitat antworten
  #6 (permalink)  
Alt 14.04.2014, 21:20
?!?
XHTMLforum-Kenner
 
Registriert seit: 20.03.2013
Beiträge: 1.638
explanator sorgt für eine eindrucksvolle Atmosphäreexplanator sorgt für eine eindrucksvolle Atmosphäre
Standard

Also wird keine Parameter month vom Ajaxscript übergeben. Jetzt musst du dich auf jQquery konzentriren und schauen warum das so ist. Das nennt man debuggen und ist eine Grundtätigkeit beim programmieren.

Noch ein paar Anmerkungen.
Um SQL-Injektions vorzubeugen sollten Parameter nie ungeprüft, wie bei dir geschehen, in den SQL-String übernommen werden. Siehe auch PHP: mysqli::real_escape_string - Manual

Man schreibt nicht select *, sondern führt statt des Sternchen alle Spalten auf die man haben möchte.

Die Mysql-Api ist veraltet und wird irgendwann abgeschafft, verwende stattdessen die MySqli (mit i ) Api. Siehe auch PHP: Choosing an API - Manual
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..."
Aus einem Forum.
Mit Zitat antworten
  #7 (permalink)  
Alt 14.04.2014, 21:21
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.06.2010
Beiträge: 126
steve46 befindet sich auf einem aufstrebenden Ast
Standard

Danke für deine Anmerkungen

Ich weiß, dass ich debuggen muss, und das tue ich schon seit mehreren Stunden. Der letzte Ausweg war für mich das Forum.
Mit Zitat antworten
  #8 (permalink)  
Alt 15.04.2014, 10:22
Benutzerbild von cebito
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.07.2009
Ort: Dresden
Beiträge: 688
cebito sorgt für eine eindrucksvolle Atmosphärecebito sorgt für eine eindrucksvolle Atmosphäre
Standard

Der Fehler liegt wohl hier
PHP-Code:
$("#monthPicker option:selected").val() 
, "option:selected" ist ein Array, da ja auch mehrfachauswahlen bei selects möglich sind.
PHP-Code:
$('#monthPicker').val() 
würde dir einen String mit allen Werten (kommagetrennt) der ausgewählten Options ausgeben, ist nur eine ausgewählt, bekommst du dein Ergebnis.
PHP-Code:
$('#monthPicker option:selected').each(function(){
      
alert($(this).val());
}); 
gibt dir nacheinander alle ausgewählten Werte einzeln aus. Ist nur einer angewählt, dann eben auch nur einen.
Um auf den ersten (und vielleicht einzigen) selected zuzugreifen müsste dein obiges Beispiel also so aussehen
PHP-Code:
$("#monthPicker option:selected[0]").val() 
Edit: Lektüre - http://mabraham.de/jquery-select-ele...-manipulieren/

Geändert von cebito (15.04.2014 um 10:35 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 15.04.2014, 10:51
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 01.06.2010
Beiträge: 126
steve46 befindet sich auf einem aufstrebenden Ast
Standard

Danke für deine Antwort.

Ich hab es versucht mit dem Array-Index so wie du es beschrieben hast und hab sogar mit each alle in ein extra Array gespeichert.

Auch mein vorheriger Ansatz den ich zu Beginn gepostet habe, liefert das richtige.

In der Variable monthText steht genau das, was übermittelt werden soll.
Jedoch kommt der PHP-Fehler "undefined index month" immer noch.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 15.04.2014, 10:56
Benutzerbild von cebito
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 18.07.2009
Ort: Dresden
Beiträge: 688
cebito sorgt für eine eindrucksvolle Atmosphärecebito sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von steve46 Beitrag anzeigen
Jedoch kommt der PHP-Fehler "undefined index month" immer noch.
Vielleicht solltest mal das ""month=" + " weglassen.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ajax - Datenbanksbruf: ASP Datei mit PHP code füllen? braindead Javascript & Ajax 3 19.10.2009 14:35
Jquery AJAX Aufruf und Tablesorter MoFu Javascript & Ajax 2 18.09.2009 10:09
OPTION (Wert) aus SELECT-Liste als PHP Variable übergeben ohne Submit Button..?! flobox Javascript & Ajax 7 18.12.2008 17:15
php wert übergeben your_ass Serveradministration und serverseitige Scripte 7 29.11.2008 15:56
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 19:09


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:15 Uhr.