在表单中的按钮单击事件中添加更多行

时间:2011-10-22 11:53:22

标签: php jquery

我有一行ID联系人列表。我想在按钮点击事件下面再添加两行(追加)。我有一个id为addmorecontacts的按钮。

我的代码结构是......

<?php $contacts=mysql_query("SELECT cntctnum, cntcttype FROM contacts WHERE rfrnc='".$pgid."'") or die(mysql_error());
 while ($resultcontacts=mysql_fetch_assoc($contacts)) {
 $contactnumber = explode("-", $resultcontacts["cntctnum"] );  ?>
     <tr >
        <td class="spacing1">Contact Number:</td>
        <td class="spacing1" >
        <input type="text" id="a" tabindex="5" name="txtphone" value="<?php echo  $contactnumber[0]; ?>" onKeyUp="next()" onChange="change2()" class="a" maxlength="3" size="2"/>
        <b>-</b>
        <input type="text" id="b" name="txtphone1" tabindex="6" value="<?php echo  $contactnumber[1]; ?>" onKeyUp="next(); next2()" onChange="change2()" class="a" maxlength="3" size="2"/>
        <b>-</b>
        <input type="text" id="c" name="txtphone2" tabindex="7" value="<?php echo  $contactnumber[2]; ?>"  onKeyUp="next1()" onChange="change2()"  class="a" maxlength="4" size="3"/></td>
     </tr>
     <tr id="contactlist">
        <td class="spacing1" >Contact Type:</td>
        <td class="spacing1" ><select name="cntcttype" id="cntcttype" tabindex="8" class="select" onChange="change2()">
        <?php  getcontacttype($resultcontacts["cntcttype"]); ?>
        </select></td>
     </tr>
    <?php }  ?>

我的排队是......

<tr>
            <td class="spacing1" >&nbsp;</td>
              <td class="spacing1" >&nbsp;</td>
              <td class="spacing1" ><input name="addmorecontacts" type="button" value="Add More"></td>
</tr>

1 个答案:

答案 0 :(得分:0)

关于上述代码的第一句话是,您最终会得到多个具有相同ID的元素,这些元素永远不会有效。您正在使用静态ID <input>在循环中生成a,b,c - 您需要删除这些ID,或者使每行成为唯一ID。您可以使用DB主键执行此操作。

为了添加更多联系人,您需要一个表单以允许用户输入详细信息,因此当您单击按钮时,您需要将用户带到包含表单的新页面,或者拥有表单显示在您现有的页面上。当用户对新联系人的详细信息感到满意时,他们需要通知您 - 因此您可以使用链接/按钮来点击Add this contact或类似内容。

单击此按钮后,您需要将数据发送到服务器,以便在数据库中输入。您可以通过以传统方式提交表单来完成此操作,以便重新加载页面,或者您可以使用AJAX - 您选择哪种方法取决于您。

如果您以传统方式提交表单,您将获取提交的数据,通过mysql_real_escape_string()传递,然后将其输入数据库,然后将用户重定向回原始页面(正确的HTTP响应)表单提交后,此类重定向的代码为303 See Other)。

如果你使用AJAX,过程将与上面相同,但不是以重定向结束,你只需exit,并用客户端脚本更新显示。

表单提交方法可以说是编程更简单,但是AJAX方法可以用来提供更流畅的用户体验和(在某些情况下)减少服务器负载,因为您不必完全重新生成页面服务器侧。

开始构建一些代码来执行上述过程,如果您遇到任何问题,我们将很乐意为您提供帮助 - 但请尝试询问有关您的特定代码的问题无法开始工作,而不是通用的“我该怎么做?”有点问题。