我有一个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->format('Y-m-d'); 更改日期的格式,因为用户输入的日期和数据库中的日期采用不同的格式。
然后是一个简单的回声$date; 只是为了测试它。
然后,回到我的主文件,我放了一个
<script type="text/javascript">
$("#wedding-table").load("wedding-ajax-support.php");
将表替换为更改格式的日期,通过 jQuery 使用 ajax。
因此,当我加载我的网页时,表格应该在的位置,会显示一条消息"致命错误:在第 23 行调用堆栈:0.0002 333936 1 中的非对象上的成员函数 format() 在/disks/diskh/zco/cotm2/public_html/wedding/wedding-ajax-support.php 中。{主要}()/disks/diskh/zco/cotm2/public_html/wedding/wedding-ajax-support.php:0".
任何想法/建议将不胜感激,提前感谢!
当 "GET" 变量作为 URL 中的查询参数传递时,由 Web 服务器为 PHP 设置。在您的情况下,您将页面加载为 "wedding-ajax-support.php"
,因此这意味着 _GET
变量实际上是空的。
该错误告诉您的结果
$date = DateTime::createFromFormat('m/d/Y', $_GET['date']);
不是DateTime
的实例,但很可能是false
因为正如 DateTime 的 php 文档所提到的,如果它无法基于给定参数创建实例,则将返回false
。
所以用
$date = $date->format('Y-m-d');
您正在尝试调用方法format()
false
,它不是对象。
你应该找出createFromFormat
失败的原因。可能是$_GET['date']
的格式无法解析,或者只是空的。尝试var_dump($_GET)
找出答案。
正如另一个答案所指出的,$_GET
变量被附加到 url 中,因此要设置$_GET['date']
,url 应该看起来像wedding-ajax-support.php?date=xyz
。
不幸的是,我没有得到你试图用javascript做什么来进一步帮助你。
编辑:哇这篇文章很旧。以前没见过,对不起。