Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将一个表单的值转换为另一个表单的值_Php_Javascript_Html - Fatal编程技术网

Php 将一个表单的值转换为另一个表单的值

Php 将一个表单的值转换为另一个表单的值,php,javascript,html,Php,Javascript,Html,我正在寻找一个简单的解决方案。代码使用JQuery和PHP。我有两个表格-1选择一个学生,值是2位代码。另一个表单上载该学生的文档,我需要第一个表单中的学生id与第二个表单一起提交。我已经看过了,但没有找到一个有效的解决方案。我只是想找一些简单的东西,如果还有其他的帖子可以用,我很乐意提供一个链接: 第一种形式:很抱歉格式不对,而且我上学迟到了 <form> <select id="student_id" name="student_id" onChange="showInvo

我正在寻找一个简单的解决方案。代码使用JQuery和PHP。我有两个表格-1选择一个学生,值是2位代码。另一个表单上载该学生的文档,我需要第一个表单中的学生id与第二个表单一起提交。我已经看过了,但没有找到一个有效的解决方案。我只是想找一些简单的东西,如果还有其他的帖子可以用,我很乐意提供一个链接: 第一种形式:很抱歉格式不对,而且我上学迟到了

<form>
<select id="student_id" name="student_id" onChange="showInvoicesForStudent();">

<option value=''>Select Student</option>

<?php
     $temp = mysql_query("select * from students order by lname");
     while ($row = mysql_fetch_array($temp)) {
          echo "<option value='" . $row['student_id'] . "'>" . $row['lname'] . ", " . $row['fname'] . "</option>";
      }
      echo "</select>";

     $DB->close();

     ?>
</form>
第二步,我试图让学生id从上面进入:

 <form name="upload_invoice" method="post" action="upload_invoice.php" enctype="multipart/form-data" >

<input type="hidden" value="document.getElementById('student_id');" id="student_id"/>

两个表单意味着:两个单独的php文件

解决方案一php文件:您在value中放置的小javascript代码没有那么糟糕。但是a它不被识别为javaScript,b它是错误的位置。您应该将其放置在按钮submit onClick上。 但是,如果两个表单放在同一页上:为什么有两个单独的表单?如果将student_id字段嵌入到第二个表单中,则将提交该字段

解决方案二php文件:但是,如果第二个表单放在另一个php文件上,您将永远无法通过javascript访问第一个表单。因此,您应该使用php标记和$u REQUEST['student\u id']来打印值。记住要做好逃逸工作,这样就不会有人闯入这种形式


如果两个表单位于同一页面上,您可以将它们组合起来,或者如果不可能,您可以使用jQuery将值从第一个表单添加到第二个表单。在这种情况下,您需要更改第二个表单的ID,因为不允许在同一页面上有两个ID相同的HTML元素。以下代码未经测试

<script>
$(document).ready(function(){
  $('#student_id').change(function() {
    $('#student_id2').val($('#student_id).val());
  });
});
</script>

如果表单位于不同的页面上,则不需要使用jQuery,而是根据表单的方法使用$\u GET或$\u POST。如果第二个表单不在紧跟第一个页面的页面上,您需要使用set cookie将学生id保存在cookie中,并使用$\u cookie访问它

为什么不合并表单?在第一个脚本中,您似乎没有向远程脚本提交任何内容。您不能为两个不同的对象提供相同的id。组合表单是有意义的。showInvoicesForStudent实际上做什么?正如我看到的它的调用方式一样,您正在拾取选定的值,并希望将其指定给隐藏的文本字段。但你们写错了作业代码。当浏览器呈现页面时,将获取初始值。相反,您应该从调用ie ShowInvoicesForStudent的函数中更改该值。在PHP中,提交表单时,获取第一个表单学生id,并将其设置在第二个表单上。@phazorRise value=document.getElementById'student_id';将使输入的值成为文本字符串document.getElementById'student_id';。这正是我所需要的,非常感谢!其他建议的方法看起来可以工作,或者我可以修改它们来完成,只调用一个php脚本,两个表单都在一个页面上,但必须分开保存。很抱歉,今天早上我没有足够的时间来充分解释。表单是分开的,因为第一个表单触发第二个ajax,但是对于页面流来说,保持它们分开效果最好。我知道我发布的代码不对,这是我最后一次尝试,我认为它行不通。我仍在学习JavaScript,很可能是很痛苦的。要启动ajax事件,没有必要分离表单。不过,Phazorise和Sam Arul Raj的答案应该会引导您获得正确的结果。
<script>
$(document).ready(function(){
  $('#student_id').change(function() {
    $('#student_id2').val($('#student_id).val());
  });
});
</script>
    **this code will give you the exact result**


 //upload_invoice.php   
print_r($_POST);

    //index.php
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script type="text/javascript" >

    function showInvoicesForStudent(student_id)
    {
        document.getElementById('studentForm_id').value=student_id;
        document.upload_invoice.submit();
    }
    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
    <body>
    <select id="student_id" name="student_id" onChange="showInvoicesForStudent(this.value);" >

    <option value=''>Select Student</option>

    <?php
         $temp = mysql_query("select * from students order by lname");
         while ($row = mysql_fetch_array($temp)) {
              echo "<option value='" . $row['student_id'] . "'>" . $row['fname'] . ", " . $row['lname'] . "</option>";
          }

         $DB->close();

         ?>
         </select>
    <form name="upload_invoice" method="post" action="upload_invoice.php" enctype="multipart/form-data" >

    <input type="hidden" name="studentForm_id" id="studentForm_id"/>
    </form>
    </body>
    </html>