我正在使用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>
答案 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