从按钮运行SQL查询按事件

时间:2017-05-12 00:30:11

标签: php jquery html ajax

我正在使用PHP,并希望在按钮按下事件上运行SQL查询。我有这个synatx,但是按下按钮时我遇到的问题没有任何反应!我打开了开发人员控制台,看不到按下按钮的动作。

我在这里不正确地编码了什么以及我如何更改它以便按预期执行?

    <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>

2 个答案:

答案 0 :(得分:3)

您需要在客户端使用这样的jQuery AJAX post方法:

$("#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 )使用id="from_id"侦听from的表单提交事件。

$("#form_id :input[name='startdate']")获取输入值。

然后,最后jQuery.post()方法将{startdate: "01.01.2016", enddate: "12.31.2016"}之类的JSON对象发送到服务器。

我写了""作为POST方法的目标,在你的情况下可能就像"/myScript.php"

在PHP的服务器端$_POST变量上自动解析请求。

您还需要在服务器端更改这两行:

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

因为您使用POST方法发送数据,而不是GET方法。

注意:用jquery标记的问题所以我假设请求应该由jQuery处理。

答案 1 :(得分:1)

提交按钮需要在标签内。具体来说,您需要至少具有Start Date:<input type="date" name="startdate" value=<?=$_POST['startdate']?>"> End Date:<input type="date" name="enddate" value="<?=$_POST['enddate']?>"> ,因为默认值为GET,这会将数据放入$ _GET而不是$ _POST。实际上,我发现你在这里有一个不一致的地方 - 一些$ _GET和一些$ _POST--肯定不能正常工作 - 需要全部一个。

To&#34; keep&#34;重新加载表单时的值,将输入行更改为:

class A
  include Neo4j::ActiveNode
    property :name, type: String
    has_many :in, :bs, type: :HAS_B
end

class B
  include Neo4j::ActiveNode
    property :name, type: String
end