我有一个html文件,其中包含下表:
<form action="wedding-ajax-support.php" method="get" id="wedding-table">
<table border="0"; align="center">
<tr>
<th scope="col">Key</th>
<th scope="col">Value</th>
</tr>
<tr>
<td><label for="date">Select the date on which your party will take place (mm/dd/yyyy): </label></td>
<td>
<input name="date" type="text" class="larger" id="date" size="12" />
</td>
</tr>
<tr>
<td><label for="catering">Type the catering grade you would like (from 1 to 5) : </label></td>
<td><input name="catering" type="text" class="larger" id="catering" size="5" /></td>
</tr>
<tr>
<td><label for="size">Type the number of people you are expecting to attend: </label></td>
<td><input name="size" type="text" class="larger" id="size" size="5" /></td>
</tr>
<tr>
<td>Find me available venues, based on my preferences: </td>
<td><input type="submit" name="submit" id="submit" value="GO!" class="larger" /></td>
</tr>
</table>
其中一项输入是日期。这是我现在唯一关心的事情,为了简单起见。
在另一个文件中,wedding-ajax-support.php(我组织了我所有的PHP代码)我在其他代码中有这个:
$date = DateTime::createFromFormat('m/d/Y', $_GET['date']);
$ date = $ date-&gt;格式('Y-m-d'); //更改日期的格式,作为用户输入的日期,以及数据库中的日期格式不同。
然后是一个简单的回声$ date; 只是为了测试它。
然后,回到我的主文件,我放了一个
<script type="text/javascript">
$( “#婚礼表”)的负载( “婚礼Ajax的support.php”);
使用ajax通过jQuery将表格替换为更改格式的日期。
因此,当我加载我的网页时,表格应该显示在哪里,会显示一条消息 “致命错误:在第23行的/disks/diskh/zco/cotm2/public_html/wedding/wedding-ajax-support.php中的非对象上调用成员函数格式()调用堆栈:0.0002 333936 1. {main }()/disks/diskh/zco/cotm2/public_html/wedding/wedding-ajax-support.php:0“。
任何想法/建议都会受到赞赏,提前谢谢!
答案 0 :(得分:0)
当Web服务器作为URL中的查询参数传递时,Web服务器会为PHP设置“GET”变量。在您的情况下,您将页面加载为"wedding-ajax-support.php"
,这意味着_GET
变量实际上是空的。
答案 1 :(得分:0)
错误告诉你
的结果$date = DateTime::createFromFormat('m/d/Y', $_GET['date']);
不是DateTime
的实例,但很可能是false
,因为提及the php doc for DateTime如果无法根据给定参数创建实例,则会返回false
。
所以用
$date = $date->format('Y-m-d');
您正试图在format()
上调用方法false
,这不是对象。
您应该找出createFromFormat
失败的原因。可能是$_GET['date']
采用的格式无法解析或只是空。请尝试var_dump($_GET)
查找。
正如另一个答案所指出的,$_GET
个变量会附加到网址上,因此要设置$_GET['date']
,网址应该看起来像wedding-ajax-support.php?date=xyz
。
不幸的是,我没有得到你试图用javascript做的事情来帮助你。
编辑:哇这篇文章很老了。之前没有看到,抱歉。