2017-05-12 3 views
1

Ich benutze PHP und möchte eine SQL-Abfrage auf einem Button drücken Ereignis. Ich habe diese Synatx, aber das Problem, das ich habe, ist nichts passiert, wenn der Knopf gedrückt wird! Ich habe die Entwicklerkonsole geöffnet und ich sehe keine Aktion von wo die Taste gedrückt wird.Run SQL-Abfrage von Button Press Event

Was habe ich hier falsch programmiert und wie soll ich es ändern, damit es wie erwartet ausgeführt wird?

<html> 
<tbody> 
Start Date:<input type="date" name="startdate"> 
End Date:<input type="date" name="enddate"> 
<input type="submit" name="submit" value="Query DB"> 
</tbody> 
</html> 
<?php 

if(isset($_POST['submit'])){ 
    $startdate = $_GET['startdate']; 
    $enddate = $_GET['enddate']; 
    $option = array(); 
    $option['driver'] = 'mssql'; 
    $option['host'] = 'IP Address'; 
    $option['user'] = 'user'; 
    $option['password'] = 'pwd'; 
    $option['database'] = 'DB'; 
    $option['prefix'] = ''; 
    $db = JDatabase::getInstance($option); 
    $query = $db->getQuery(true); 
    $query = "Select Top 1 firstname from userinformation where hiredate >= '$startdate' and termdate < '$enddate'"; 
    $db->setQuery($query); 
    $query = $db->loadObjectList(); 
} 
?> 
</html> 

Antwort

2

Sie benötigen einen jQuery AJAX post-Methode, wie dies auf der Client-Seite:

$("#form_id").submit(function(event) { 
    $.post("", {startdate: $("#form_id :input[name='startdate']"), enddate: $("#form_id :input[name='enddate']");} , function(data) { 
    // handle the returning data if you need 
    }); 
}); 

$("#form_id").submit(function(event) wartet auf das Formularübergabeereignis des von id="from_id".

$("#form_id :input[name='startdate']") erhält den Eingangswert.

Dann schließlich jQuery.post() Methode sendet ein JSON-Objekt wie {startdate: "01.01.2016", enddate: "12.31.2016"} an den Server.

Ich schrieb "" als Ziel der POST-Methode, könnte es wie "/myScript.php" in Ihrem Fall sein.

Auf Server-Seite $_POST Variable von PHP analysiert die Anfrage automatisch.

Darüber hinaus müssen Sie diese beiden Zeilen auf der Server-Seite ändern:

$startdate = $_POST['startdate']; 
$enddate = $_POST['enddate']; 

weil Sie POST Methode verwenden, um Ihre Daten und GET Methode zu senden.

Hinweis: Frage mit jquery getaggt, so nahm ich an, dass Anfrage von jQuery behandelt werden sollte.

1

Ein Submit-Button muss innerhalb der Tags sein. Insbesondere müssen Sie mindestens <form method="POST"> haben, da der Standardwert GET ist, der die Daten in $ _GET anstelle von $ _POST setzen würde. Eigentlich sehe ich hier eine Inkonsistenz - einige $ _GET und einige $ _POST - die definitiv nicht richtig funktionieren werden - müssen alle eins sein.

zu "halten" die Werte auf Neuladen der Form, die Eingangsleitungen ändern:

Start Date:<input type="date" name="startdate" value=<?=$_POST['startdate']?>"> 
End Date:<input type="date" name="enddate" value="<?=$_POST['enddate']?>"> 
+0

Zu meinem Verständnis - ich muss $ _Post mit dem Knopf drücken, also sollte ich meine Variablen erfasst zu $ ​​_Post auch ändern? Ich werde in einem

an der Spitze auch hinzufügen :) – BellHopByDayAmetuerCoderByNigh

+0

Schön! Das hat es getan !! Gibt es trotzdem, dass ich die Werte für Start und Ende auch nach dem Drücken der Taste beibehalten kann? – BellHopByDayAmetuerCoderByNigh

+0

Diese Antwort enthält nicht ** jquery **. OP hat seine/ihre Frage mit jquery und ajax tag versehen. @BellHopByDayAmetuerCoderByNigh Meine Antwort verwendet den jQuery AJAX-Ansatz, um die Anfrage dynamisch zu bearbeiten. (also wahrscheinlich das, was Sie suchen) – mertyildiran