Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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更改HTML元素的类标记_Php_Html - Fatal编程技术网

单击输入时,如何使用PHP更改HTML元素的类标记

单击输入时,如何使用PHP更改HTML元素的类标记,php,html,Php,Html,首先,我不能使用JavaScript来实现这一点。作为家庭作业的一部分,我们只能使用PHP 我的当前代码侦听一个input type=“submit”post,然后检查一些文本输入是否为空或其中是否有内容。目前,它将只回显一些有效的文本 我想要的是输入文本字段上的class标记根据它们是否已满而改变 下面是我当前的代码: <?php $statusCodeClass='class="form-control"'; $statusTextClass='clas

首先,我不能使用JavaScript来实现这一点。作为家庭作业的一部分,我们只能使用PHP

我的当前代码侦听一个
input type=“submit”
post,然后检查一些文本输入是否为空或其中是否有内容。目前,它将只回显一些有效的文本

我想要的是输入文本字段上的class标记根据它们是否已满而改变

下面是我当前的代码:

<?php
        $statusCodeClass='class="form-control"';
        $statusTextClass='class="form-control"';

        // Are all fields fill
        if(isset($_POST['post'])){
            checkStatusCodeIsEmpty();
            checkStatusTextIsEmpty();

            //Check if the fields are empty
            if(checkStatusCodeIsEmpty() && checkStatusTextIsEmpty()){
                echo "move to the next page";
            }else{
                echo "not correct yet";
            }           
        }

        function checkStatusCodeIsEmpty(){
            if(empty($_POST['statusCode'])){
                $statusCodeClass='class="form-control is-invalid"';
                return false;
            }else{
                $statusCodeClass='class="form-control is-valid"';
                return true;
            }
        }
        function checkStatusTextIsEmpty(){
            if(empty($_POST['statusText'])){
                $statusTextClass='class="form-control is-invalid"';
                return false;
            }else{
                $statusTextClass='class="form-control is-valid"';
                return true;
            }
        }
    ?>

    <!-- Whole page -->
    <div class="container-fluid px-lg-5">
        <h1>Status Posting System</h1>
        <form method="post">
            <!-- Status code group. This has the label and input -->
            <div class="form-group row">
                <label for="statusCodeInput" class="col-sm-2 col-form-label">Status Code (required):</label>
                <div class="col-sm-4">
                    <input type="text" name="statusCode" <?php echo $statusCodeClass; ?> id="statusCodeInput" placeholder="eg: S0001">
                </div>
            </div>
            <!-- Status text group. This has the label and input-->
            <div class="form-group row">
                <label for="statusText" class="col-sm-2 col-form-label">Status (required):</label>
                <div class="col-sm-8">
                    <input type="text" name="statusText" <?php echo $statusTextClass; ?> id="statusText" placeholder="eg: programming my first assignement">
                </div>
            </div>

            <!-- Button Fields -->
            <div class="form-group">
                <input type="submit" class="btn btn-primary" name="post" value="submit">
            </div>
        </form>
    </div>

状态发布系统
状态代码(必填):
id=“statusText”placeholder=“例如:编程我的第一个任务”>

通过以下方式更改PHP代码,它将起作用:

$statusCodeClass = 'class="form-control"';
$statusTextClass = 'class="form-control"';
// Are all fields fill
if (isset($_POST['post'])) {
        $isCodePresent = checkStatusCodeIsEmpty();
        $isTextPresent = checkStatusTextIsEmpty();

        //Check if the fields are empty
        if ($isCodePresent && $isTextPresent) {
            echo 'move to the next page';
        } else {
            echo 'not correct yet';
        }

        $statusCodeClass = 'class="form-control '.($isCodePresent ? 'is-valid' : 'is-invalid').'"';
        $statusTextClass = 'class="form-control '.($isTextPresent ? 'is-valid' : 'is-invalid').'"';
    }

    function checkStatusCodeIsEmpty()
    {
        return !empty($_POST['statusCode']);
    }
    function checkStatusTextIsEmpty()
    {
        return !empty($_POST['statusText']);
    }
}

您试图在未在该范围内定义的函数中分配变量。我已更改代码,以便根据函数输出分配变量。

更改PHP代码,方法如下:

$statusCodeClass = 'class="form-control"';
$statusTextClass = 'class="form-control"';
// Are all fields fill
if (isset($_POST['post'])) {
        $isCodePresent = checkStatusCodeIsEmpty();
        $isTextPresent = checkStatusTextIsEmpty();

        //Check if the fields are empty
        if ($isCodePresent && $isTextPresent) {
            echo 'move to the next page';
        } else {
            echo 'not correct yet';
        }

        $statusCodeClass = 'class="form-control '.($isCodePresent ? 'is-valid' : 'is-invalid').'"';
        $statusTextClass = 'class="form-control '.($isTextPresent ? 'is-valid' : 'is-invalid').'"';
    }

    function checkStatusCodeIsEmpty()
    {
        return !empty($_POST['statusCode']);
    }
    function checkStatusTextIsEmpty()
    {
        return !empty($_POST['statusText']);
    }
}

您试图在未在该范围内定义的函数中分配变量。我已更改代码,以便根据函数输出分配变量。

您可以使用内联php if-else语句执行此操作:

//Define an error variable on the top of your page
<?php $error = 0; ?>

//Codes here

<div class="form-group row">
    <label for="statusText" class="col-sm-2 col-form-label">Status (required):</label>
    <div class="col-sm-8">
    <?php
        if(empty($_POST['statusText'])){
            echo '<input type="text" name="statusText" class="form-control is-invalid" id="statusText" placeholder="eg: programming my first assignement">';
            $error = 1;
        } else {
            echo '<input type="text" name="statusText" class="form-control is-valid" id="statusText" value="'.$_POST['statusText'].'">';
        }
    ?>
    </div>
</div>

//At the end of the page
<?php
    if($error != 0){
        echo 'Not correct yet';
    } else {
        echo 'Move to the next page';
    }
?>
//在页面顶部定义一个错误变量
//这里的代码
状态(必需):
//在这一页的末尾

您可以使用内联php if-else语句执行此操作:

//Define an error variable on the top of your page
<?php $error = 0; ?>

//Codes here

<div class="form-group row">
    <label for="statusText" class="col-sm-2 col-form-label">Status (required):</label>
    <div class="col-sm-8">
    <?php
        if(empty($_POST['statusText'])){
            echo '<input type="text" name="statusText" class="form-control is-invalid" id="statusText" placeholder="eg: programming my first assignement">';
            $error = 1;
        } else {
            echo '<input type="text" name="statusText" class="form-control is-valid" id="statusText" value="'.$_POST['statusText'].'">';
        }
    ?>
    </div>
</div>

//At the end of the page
<?php
    if($error != 0){
        echo 'Not correct yet';
    } else {
        echo 'Move to the next page';
    }
?>
//在页面顶部定义一个错误变量
//这里的代码
状态(必需):
//在这一页的末尾

也许您可以尝试以下功能:

 function checkStatusCodeIsEmpty($statusCode){
      $statusCodeClass= 'class="form-control"';
        if(!statusCode){
            $statusCodeClass='class="form-control is-invalid"';
        }else{
            $statusCodeClass='class="form-control is-valid"';
        }
       return $statusCodeClass;
    }
那么你可以这样称呼它

 $statusCodeClass=checkStatusCodeIsEmpty($_POST['statusCode']);

与其他功能相同

也许您可以尝试以下功能:

 function checkStatusCodeIsEmpty($statusCode){
      $statusCodeClass= 'class="form-control"';
        if(!statusCode){
            $statusCodeClass='class="form-control is-invalid"';
        }else{
            $statusCodeClass='class="form-control is-valid"';
        }
       return $statusCodeClass;
    }
那么你可以这样称呼它

 $statusCodeClass=checkStatusCodeIsEmpty($_POST['statusCode']);

与其他功能相同

这不考虑OP输出的消息。感谢提醒,我已编辑代码以解决此问题。这不考虑OP输出的消息。感谢提醒,我已编辑代码以解决此问题。您需要在顶部定义这些变量,在第一个if语句之前,否则OP将在提交表单之前获得“undefined variable”。更改了我的答案。谢谢。你需要在第一个if语句之前在顶部定义这些变量,否则OP将在表单提交之前得到“undefined variable”。更改了我的答案。谢谢。这也可以,不过,仅使用这段代码,就意味着当您第一次打开页面时,类是无效的。但这也会起到很好的作用。谢谢,这也可以,不过,仅使用这段代码,就意味着当您第一次打开页面时,类是无效的。但这也会起到很好的作用。谢谢