1

我有一个包含下表的 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('Ymd'); // 更改日期的格式,因为用户输入的日期和数据库中的日期格式不同。

然后是一个简单的 echo $date; 只是为了测试它。

然后,回到我的主文件,我放了一个

<script type="text/javascript">

$("#wedding-table").load("wedding-ajax-support.php");

通过 jQuery 使用 ajax 将表格替换为更改格式的日期。

所以,当我加载我的网页时,表格应该在哪里,显示一条消息“致命错误:调用 /disks/diskh/zco/cotm2/public_html/wedding/ 中非对象上的成员函数 format() wedding-ajax-support.php 第 23 行调用堆栈:0.0002 333936 1. {main}() /disks/diskh/zco/cotm2/public_html/wedding/wedding-ajax-support.php:0 "。

任何想法/建议将不胜感激,在此先感谢!

4

2 回答 2

0

当“GET”变量作为 URL 中的查询参数传递时,Web 服务器会为 PHP 设置这些变量。在您的情况下,您将页面加载为"wedding-ajax-support.php",这意味着该_GET变量实际上是空的。

于 2012-05-24T04:20:55.603 回答
0

错误告诉你结果

$date = DateTime::createFromFormat('m/d/Y', $_GET['date']);

不是一个实例,DateTime但很可能false是因为正如DateTime 的 php 文档所述false,如果它无法根据给定参数创建实例,则会返回。

所以随着

$date = $date->format('Y-m-d');

您正在尝试调用format()on方法false,这不是对象。

你应该找出createFromFormat失败的原因。可能是$_GET['date']它无法解析的格式,或者它只是空的。试着var_dump($_GET)找出答案。

正如另一个答案所指出的那样,$_GET变量被附加到 url,因此$_GET['date']要设置的 url 应该看起来像wedding-ajax-support.php?date=xyz例如。

不幸的是,我没有得到你试图用 javascript 做什么来进一步帮助你。

编辑:哇这个帖子很老了。之前没看到,不好意思。

于 2016-04-14T20:56:34.543 回答