【问题标题】:Jquery dialog form not posting field contents correctly to PHP fileJquery 对话框表单未将字段内容正确发布到 PHP 文件
【发布时间】:2014-01-17 04:19:12
【问题描述】:

我的一个网页上有一个链接。

<div id="updateDay"><a href="#" id = "updateDiffDay">Update</a> a different day</div>

当用户单击 updateDiffDay 链接时,会打开一个带有表单的 jquery 模式对话框。该表单有两个字段,一个是日期选择器,另一个是文本框。

<form id="updateDiffDayForm" method="post" action="updateDiffDay.php">
    <input class = "field" type="text" placeholder= "Select a date" id="datepicker">
    <input type="text" id="diffDayDailyMetric" class="field" placeholder="Enter weight" />
</form>

对话框上有两个按钮,更新和取消。当用户单击更新按钮时,表单应将用户在表单上输入的内容发布到 updateDiffDay.php 文件。

模态对话框的代码如下:

<script>
$(function() {
$( "#datepicker" ).datepicker({
  dateFormat: 'yy-mm-dd',
  changeMonth: true,
  changeYear: true,
yearRange: "-90:+0"
  });

$( "#dialog" ).dialog({
  autoOpen: false,
  width: 350,
  height: 250,
  modal: true,
  dialogClass: 'ui-dialog',
  draggable: false,
  resizable: false,
  buttons: {
        Update: function () {
    $('#updateDiffDayForm').submit();
        },
        Cancel: function () {
            $(this).dialog("close");
        }
    },

  show: {
    duration: 500
  },
  hide: {
    duration: 500
  }
});

$( "#updateDiffDay" ).click(function() {
  $( "#dialog" ).dialog( "open" );
});

});

updateDiffDay.php的代码如下:

<?php
$date = $_POST['datepicker'];
$metric = $_POST['diffDayDailyMetric'];
echo $date;
echo $metric;

在表单中的字段发布到 PHP 文件之前,一切似乎都正常。问题是当用户单击更新按钮时,表单上输入框的内容(即用户在日期选择器中选择的日期和在 diffDayDailyMetric 输入框中输入的值)被忽略,并且日期选择器的默认日期, 1970-01-01, 发布到 datepicker 并且没有发布到 diffDayDailyMetric。

我已经尝试了很多并搜索了论坛,但无法完成这项工作。任何帮助将不胜感激。这是我第一次像这样使用 jquery。非常感谢您的帮助。谢谢

【问题讨论】:

    标签: javascript php jquery html datepicker


    【解决方案1】:

    在您的表单中:

    <form id="updateDiffDayForm" method="post" action="updateDiffDay.php">
        <input class = "field" type="text" placeholder= "Select a date" id="datepicker">
        <input type="text" id="diffDayDailyMetric" class="field" placeholder="Enter weight" />
    </form>
    

    您没有使用名称属性。更新:

    <form id="updateDiffDayForm" method="post" action="updateDiffDay.php">
        <input class="field" type="text" placeholder="Select a date" id="datepicker" name="datepicker">
        <input type="text" id="diffDayDailyMetric" class="field" placeholder="Enter weight" name="diffDayDailyMetric" />
    </form>
    

    这应该可以解决问题。

    【讨论】:

    • 乔希。谢谢你。我认为它使用的是“id”而不是“名称”。我花了 4 个小时试图找出问题所在。我进行了更改,并且效果很好。再次感谢伙计!
    • 没问题。我也做过同样的事情。调试从来都不是一件有趣的事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多