【问题标题】:Change form action onchange selection更改选择时更改表单操作
【发布时间】:2016-12-21 18:00:54
【问题描述】:

我正在努力追随。简化我有一个包含两个表的数据库 表客户与客户 与客户、项目表项目

我有一个带有客户下拉列表的表单。 Onchange 选定客户端,通过函数 fetch_select(val) 和 fetch_data.php 填充第二个项目下拉列表。 这工作正常。

我在每个下拉列表中添加了一个最终添加新客户或项目的选项。在两个下拉列表中,“添加”选项都根据需要列在底部。 现在棘手的是如何在选择“添加”时更改 onchange。 在这种情况下,我希望弹出一个模式窗口,这样我就可以添加一个客户端或项目,它会在提交时消失,这样用户就会返回原来的状态。

我试图在函数 fetch_select(val) 中构建一个 if 语句,所以当客户端的内容是“add_client”时它不会启动 fetch_data.php

下面是我使用的代码:

文件 index3.php:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
include 'dbconnect.php';
?>

<script type="text/javascript" src="scripts/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
function fetch_select(val)
{   
 $.ajax({
 type: 'post',
 url: 'fetch_data.php',
 data: {
  get_option:val
 },
 success: function (response) {
  document.getElementById("projects").innerHTML=response; 
 }
 });
}
</script>

<?php
echo "<table>";
echo "<form action='index3.php method='post'>";
echo "<tr>";
echo "<td>";
echo "<select name='client' id='client' onchange='fetch_select(this.value);'>"; 
echo "<option>Name of Firm</option>"; 
$select = mysqli_query($Verbinding,"SELECT client FROM clients GROUP by client");
while ($row = mysqli_fetch_array($select)) 
    {
    echo '<option value="'.$row['client'].'">'.$row['client'].'</option>';
    }
echo "<option value='add_client'>Add Client</option>";
echo "</select>";
echo "</td>";
echo "<td>";
echo "<select name='project' id='projects'>";
echo "<option>Select Project</option>";             
echo "</select>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</form>";
?>

文件:fetch_data.php

<?php

if(isset($_POST['get_option']))
{
include 'dbconnect.php';
$client= $_POST['get_option'];
    {
    $find = mysqli_query($Verbinding,"SELECT * FROM projects WHERE client='".$client."'");
    while($row = mysqli_fetch_array($find))
        {
        echo "<option value='".$row['project']."'>".$row['project']."</option>";
        }
    }
    echo "<option value='add_project'>Add Project</option>";
    exit;
}
?>

希望任何人都可以帮助我。谢谢和问候,

保罗

【问题讨论】:

    标签: javascript php jquery forms


    【解决方案1】:

    除非我有误解,否则这似乎相当简单:

    function fetch_select(val)
    {   
      if (val != "add_client")
      {
        $.ajax({
         type: 'post',
         url: 'fetch_data.php',
         data: {
           get_option:val
         },
         success: function (response) {
          document.getElementById("projects").innerHTML=response; 
         } 
        });
      }
      else
      {
        //code here to show your popup
      }
    }
    

    【讨论】:

    • 感谢 ADyson 的快速回复。 if else 语句有效,所以这是第一步。但是,我无法让模态窗口显示。我添加了一个 CSS 样式表。
    • 没问题。此答案解决了您的问题,因此,如果有帮助,请标记为已接受,谢谢:-)。在添加模式方面,在您展示您目前所掌握的 HTML/CSS/Script 之前,我们无法为您提供真正的帮助 - 可能它值得一个单独的问题,因为它确实是一个单独的问题。
    • P.S.如果您在此处链接到您的新问题,我会尽力提供帮助
    猜你喜欢
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多