【问题标题】:Submitting a form using onChange,ajax,php and Mysql.Dropdown list's value is not sent to the php submit page使用 onChange、ajax、php 和 Mysql 提交表单。Dropdown 列表的值不会发送到 php 提交页面
【发布时间】:2012-05-21 06:38:06
【问题描述】:

我有一个包含国家/地区下拉列表的表单。

如果用户选择其中一个国家(onchange), 出现一个新的城市下拉列表 仅显示该特定国家/地区的城市。

<select name = \"countries\" id=\"ListOfCountries\" onchange=\"showCities(this.value)\">

我已经通过使用 php、mysql 和 ajax 实现了这一点。

我的教程 学习和关注的链接如下:

http://www.w3schools.com/php/php_ajax_database.asp

城市的下拉列表会自动显示在网页上 无需再次加载页面。

当城市框出现时,如果我这样做了 Ctrl-U 为了查看页面的源代码, 城市下拉列表的html代码不在源代码页中。

我的问题是,当我提交表单时, 城市下拉列表的值 未发送submit.php 文件

index.php

 <form action="submit.php" name="my_form" method="post">

提交.php

 echo $_POST['cities'];

$_POST['cities']; 为空白。

表示在提交页面中NO值 已发送城市的下拉列表。

我应该怎么做才能解决这个问题?

谢谢,提前

【问题讨论】:

  • 如果您使用 Ajax 为“城市”添加 select 元素,它会动态添加到页面中。因此,您不会在源代码中看到它,只能在调试器中看到它。 W3Fools.

标签: php mysql ajax forms submit


【解决方案1】:

添加客户端和服务器端验证器。例如在客户端,如果没有选择城市,则禁用提交按钮。在服务器端,如果isset($_POST['cities']) 为假,则不执行任何查询,只需将用户重定向到同一页面并显示错误消息“请选择城市”

【讨论】:

  • 在我的测试中,用户总是选择其中一个城市。我的问题是 ($_POST['cities']) 总是空白,没有价值。我该怎么办?谢谢
  • 另外,我使用 echo 向浏览器显示城市的下拉列表。似乎
    没有意识到创建了一个新的输入/下拉列表,这就是为什么在提交页面中,$city 为空白。
  • 该教程看起来过时了,试试这个吧erichynds.com/jquery/jquery-related-dependent-selects-plugin
  • 对我来说理解教程有点困难,因为我使用 ajax 来连接数据库而不是 jquery。
  • 你可以将 ajax 与 jquery 一起使用,这要简单得多。
【解决方案2】:

您似乎没有正确更新 DOM,因此当您提交表单时,城市参数不可用。 如果您使用 jQuery,请使用 jQuery.after() 或任何类似的函数来更新 DOM。如果不是,您必须使用选择创建一个节点并将其添加到表单中。

【讨论】:

  • 我正在关注我在第一篇文章中已经写过的 url 链接中的教程。所以,我没有使用jquery,而是一个调用php文件的javascript函数,从数据库中选择城市并使用“echo”将城市的下拉列表打印到浏览器
  • 当你说我必须“添加一个节点”时,这是什么意思?
  • 那个“回声”是问题所在。它将更新您的屏幕,您将看到选择,但 DOM 未更新,因此选择不存在。我会找到一个例子并发布它。
  • 这里更好地解释了我说添加节点时的意思:developer.mozilla.org/en/DOM/document.createElement 你明白问题了吗?
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 2017-04-09
  • 2014-02-14
  • 2015-09-15
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多