0

我有这个并且工作正常。但是有人能告诉我有没有更聪明的方法来验证这一点?

在此处的验证中,您可能会发现它echo "<form.......被复制了三次,以确保在提交表单时表单内容与验证消息一起也可见。我确信有一种更精细的方法可以验证文本框内容,而无需多次复制表单。

如果有人可以建议我在提交表单后保留文本框值的方法,也将不胜感激。通常,当提交表单时,您输入的值会消失。

谢谢

<?php
include ("../connection/index.php"); 
?>
<form method='post' action=''>
<input type="submit" name="sendone" id="sendone" value="OneClick">
</form>
<?php


if(isset($_POST['sendone']))
{
echo "Hello";
echo "<form method='post' action=''><input type='text' name='txt1' id='txt1'><input type='submit' name='sendtwo' id='sendtwo' value='TwoClick'></form>";

}
if(isset($_POST['sendtwo']))
{if($_POST['txt1']=='')
{
echo "Hello";
echo "<form method='post' action=''><input type='text' name='txt1' id='txt1'><input type='submit' name='sendtwo' id='sendtwo' value='TwoClick'></form>";
echo "Empty";}
else
{
echo "Hello";
echo "<form method='post' action=''><input type='text' name='txt1' id='txt1'><input type='submit' name='sendtwo' id='sendtwo' value='TwoClick'></form>";
echo "Hit success!";            
}}

?> 

编辑

概念

  <hard coded submit1 button>
     <dynamically create a text box with a submit2 button>
         <when submit2 is activated is should validate the text box content>

当验证发生时,已验证的消息和文本框都应该可见

4

1 回答 1

0

你的意思是这样的吗?

<?php
if(isset($_POST['sendtwo']))
{
    echo "Hello";
}
?>
    <form method='post' action=''>
        <?php
        if (!isset($_POST['sendone'])) {
            ?>
            <input type="submit" name="sendone" id="sendone" value="OneClick">
        <?
        } else {
            ?>
            <input type="hidden" name="sendone" id="sendone" value="OneClick">
            <input type='text' name='txt1' id='txt1'<?=isset($_POST['txt1']) && trim($_POST['txt1']) !== '' ? ' value="'.trim($_POST['txt1']).'"' : ''?>>
            <input type='submit' name='sendtwo' id='sendtwo' value='TwoClick'>
        <?
        }
        ?>
    </form>
<?php
if (isset($_POST['sendtwo'])) {
    if (trim($_POST['txt1']) == '') {
        echo 'Empty';
    } else {
        echo 'Hit success!';
    }
}
于 2013-07-04T09:04:58.617 回答