如何在需要后提交表单并停留在同一页面上?

时间:2020-07-27 17:36:00

标签: javascript php html forms

我有一个简化版本可能如下的代码:

file1.php

$array = array();
$array = new randomObject(1);
$array = new randomObject(2);
require('file2.php');

file2.php

<form  method="post" action="?">
 <?php
        foreach ($array as $a) {                           
             <p><?php echo $a->getAValue();  
                <textarea rows="5" cols="70" name="textbox[]"> 
                </textarea>
             </p>
  <?php } ?>
        <input id="isTrue"> //true or false
        <input type="submit" >
</form>

用户应该在文本区域中编写答案,然后单击提交,然后将他的答案与randomObject值进行比较。然后显示每个文本区域旁边的是真还是假

2 个答案:

答案 0 :(得分:0)

您正在寻找fron-tend可以为您处理的东西,而AJAX调用正是您所需要的。

首先,为您的表单命名

<form id="myForm"  method="post" action="?">
 <?php
        foreach ($array as $a) {                           
             <p><?php echo $a->getAValue();  
                <textarea rows="5" cols="70" name="textbox[]"> 
                </textarea>
             </p>
  <?php } ?>
        <input id="isTrue"> //true or false
        <input id="submitButton" type="submit" >
</form>

现在,您在提交按钮和表单本身上都有正确的ID。

<script>
let submitB = document.querySelector("#submitButton");
submit.addEventListener("click", function(e) {
    e.preventDefault();
});
</script>

从现在开始,您只需要对要访问的URL编写适当的ajax调用,就可以开始使用了。

如果您需要帮助,请告诉我,我会为您提供帮助。

答案 1 :(得分:0)

我猜您要保留用户输入的值,因为如果您提交表单,它们将消失。 (页面重新加载) 这可以通过更改输入字段来完成。如果提交了值,则将该值传递到每个相应的输入字段。

类似的东西:

<textarea rows="5" cols="70" name="textbox[]" <?php if(isset(value[SOMETHING])){?> value="<?php echo value[SOMETHING]; ?>" <?php } ?> >

这只是其工作方式的一个示例。确保您将其适应您的代码!