我有一个带有php-for循环的短html表单,它允许用户在页面上构建多达十次相同的表单


I have a short html form with a php for loop which allows the user to build the same form up to ten times on the page

$i变量是每个字段,并填充在"inp"框中,这些框只是输入框,而sbox只是选择框。页面加载时只有一个表单,并且它具有添加培训师的所有条件。第一个表单上的培训师名称将是trainer_name1。如果他们选择点击新按钮,他们可以填写另一个培训师的信息,第二个表单中"名称"的输入框将仅为trainer_name2,所有其他字段将分别按照表单中的名称命名。随着新表单的构建,只需在字段名称的末尾添加下一个连续数字。

这是我的代码:

<fieldset><legend>Trainer Request</legend></fieldset>
<tr><td><input type='button' onClick="if (show_item(1,10, 0)) { this.style.display = 'none'; }" value='New'></td></tr>
<?php
$contact_array = array('ACCEPTED TRAINING','DECLINED TRAINING','LEFT MESSAGE FOR TRAINING ACCEPTANCE',
        'NEED TO CONTACT TO SEE IF INTERESTED',
        'NEED PAPERWORK/TRAINING',
        'NEED SIGNED CONTRACT AND PAPERWORK',
        'NEED TO COMPLETE TRAINING');
for ($i = 10; $i > 0; $i=$i-1)
    {
    echo "<table id='hidden$i' style='display:none;'><tr>";
    echo "<td>Date</td><td>Status</td></tr>";  
    echo "<tr><td>"; inp("date$i"); echo "</td><td>";
    sbox("contact$i", $contact_array, 0, 'wide2');
    echo "</td></tr>
    <tr><td>Facility</td><td>"; 
    inp("facility$i",50);   echo "</td></tr>";
    echo "<tr><td>Trainer Name</td><td>";
    inp("trainer_name$i",35);
    echo "<tr><td>Distance From</td><td>";
    sbox("distance_from$i", array('1','2','5','10','15','20','25','30','40','50','60','70','80','90','100'));
    echo "</td></tr>
    <tr><td>Phone</td><td>";
    inp("phone$i",13,'phone');
    echo "</td><tr><tr><td>Email</td><td>";
    inp("email$i",50);
    echo "</tr><tr><td>Address 1</td><td>";
    inp("addr1$i",50);
    echo "</tr><tr><td>Address 2</td><td>";
    inp("addr2$i",10);
    echo " City ";
    inp("city$i",20);
    echo "</td></tr><tr><td>State</td><td>";
    inp("state$i",2);
        echo " Zip ";
    inp("zip$i",'zip');
    echo "</td></tr><tr><td>Notes</td><td>";
    tbox("notes$i", 40, 3);
    echo "</td></tr></table>";
    }
?>
<script type='text/javascript'>
show_item(1,10,1);
</script>

正如你在下面看到的,我正在建立一个链接,无论教练的名字是什么,它都会命名这个链接,在这种情况下,trainer_name1是Tim Jackson,所以我刚刚用他的名字建立了一个超链接。

<?php
// print_r ($_GET);
    echo sendback_link($_GET['trainer_name1'], 'ACS/TrainerLookup', 'trainer_id=trainer_code&trainer_name=trainer_name'); 

?>

我很困惑如何将这样的动态链接添加到for循环中,以便表单构建1-10,每个trainer_name2、trainer_name3、trainer_name 4等的名称都将被超链接。

我想为数字1-10创建一个新变量,并将其附加到$_GET[trainer_name$]上。。像那样的东西?

我希望这是合理的,任何帮助都将不胜感激。

如果我正确理解你的问题,那么你正在尝试添加更多内容或替换已经用PHP生成的网页上的内容。

我认为您尝试做的事情可以使用AJAX来实现。AJAX是一种创建动态网页的技术。AJAX允许通过在后台与服务器交换少量数据来异步更新网页。这意味着可以更新网页的部分内容,而无需重新加载整个页面。

在您的情况下,该过程可以分为3个步骤进行描述:

  • 浏览器向服务器发出新请求(使用javascript)
  • 服务器处理请求并将一些信息发送回浏览器
  • 浏览器处理这些信息(再次使用javascript),然后更新部分网页

这里有一个示例,展示了如何动态更改网页内容。

不过,如果允许的话,我建议你使用像jQuery这样的javascript框架,它可以简化整个过程(在谷歌上搜索下载和如何使用的说明)。

你可以在这里阅读关于在jQuery中使用AJAX的内容,并阅读下面的例子来更好地理解如何使用它

如果你打算尝试将AJAX与jQuery一起使用,或者简单地使用AJAX,我建议你在测试页面上尝试一下,以获得一个简单的工作示例,然后添加一些内容并检查是否一切正常。当测试页面按预期工作时,将代码导入到您的页面中。

这就是我要做的,可能有更好或更简单的方法。