Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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 确定输入字段是否有值的方法_Php_Javascript - Fatal编程技术网

Php 确定输入字段是否有值的方法

Php 确定输入字段是否有值的方法,php,javascript,Php,Javascript,我重新发布这篇文章是为了更具体地回答我的问题。我正在尝试合并此处找到的计算器: 我希望calculate按钮足够智能,可以知道两个输入字段中的一个是否输入了值,然后执行两个JS函数中的一个,calculate或Calculate2。如果两个字段都输入了值,我希望它抛出一个错误来代替按钮。下面是我的概念代码,我不知道如何定义php变量,也不知道如何告诉它查看每个输入字段并确定是否输入了值。也不确定打印是否正确 <?php $input_B = "form field named

我重新发布这篇文章是为了更具体地回答我的问题。我正在尝试合并此处找到的计算器:

我希望calculate按钮足够智能,可以知道两个输入字段中的一个是否输入了值,然后执行两个JS函数中的一个,calculate或Calculate2。如果两个字段都输入了值,我希望它抛出一个错误来代替按钮。下面是我的概念代码,我不知道如何定义php变量,也不知道如何告诉它查看每个输入字段并确定是否输入了值。也不确定打印是否正确

<?php
    $input_B   = "form field named input_B";
    $input_C  = "form field named input_C";

    if($input_B == 'has a value' && $input_C == 'has no value')
    { 
        print ' <P><INPUT TYPE="button" VALUE="Calculate" name="AddButton" onClick="Calculate(this.form.input_A.value, this.form.input_B.value, this.form.input_C.value, this.form)"></P>'; 
    } 
    elseif($input_C == 'has a value' && input_B == 'has no value' )
    { 
        print ' <P><INPUT TYPE="button" VALUE="Calculate" name="AddButton" onClick="Calculate2(this.form.input_D.value, this.form.input_E.value, this.form.input_F.value, this.form)"></P>';
    } 
    elseif ($input_C == 'has a value' && input_B == 'has a value')
    { 
        print ' Please choose only one field to fill in';
    } 
    else 
    {
        print ' <P><INPUT TYPE="button" VALUE="Calculate" name="AddButton" onClick="Calculate(this.form.input_A.value, this.form.input_B.value, this.form.input_C.value, this.form)"></P>';
    } // End if/else if
?> 

第一个if语句应重写如下:

if(($input_B != "") && ($input_C == "")) 

那么,只要两个输入字段具有唯一性,其他字段的逻辑就相同!ids,您可以执行以下操作:

var field0 = document.getElementById("field0id").value;
var field1 = document.getElementById("field1id").value;
if(field0 === ""){
    if(field1 !== ""){
        calculate();
    }else{
        //error
    }
}elseif(field1 === ""){
    calculate2();
}else{
    //error
}

首先,您不需要在服务器端执行任何操作,因为PHP就是在服务器端运行的。而是使用javascript。它应该是这样的:请记住,这是使用jQuery,这是一个javascript库。您可以了解jQuery

编辑:修改函数以执行问题中定义的逻辑


这应该在javascript中完成,而不是PHP。@如果禁用javascript怎么办?或者用户用firebug?@Bono之类的东西更改值,那么用户就是个混蛋-P@Bono简单的事实是,考虑到目前的网络状态,用户禁用javascript在互联网上是失败的。有大量的网站使用javascript进行异步调用AJAX和DHTML;禁用javascript只会妨碍用户体验。如果用户决定使用firebug更改值,那么情况就不同了。但我有一种感觉,OP在这一点上并不寻求那种安全级别。@Matt我知道,但我只是指出了这一点。尽管如此,即使他们在互联网上失败了,这也不是一个好借口!但我的观点主要是从你提到的安全角度出发的;事实上,他根本不应该在PHP中扮演那个角色。@SomeKittens我很肯定OP Lauren也是一个女主角。他们OP.提问者。劳伦。为什么我不选一个呢?好吧,@Matt,如果是这样的话,我想用正确的方法,用javascript而不是PHP。这是我目前正在使用的脚本来计算:函数calculateText,Btext,Ctext,form{var A=parseFloatAtext;var B=parseFloatBtext;var C=parseFloatCtext;form.Answer.value=B-A*C/1000;}函数Calculate2Atext,Ctext,Dtext,form{var C=parseFloatCtext;var A=parsefloatext;var D=parseFloatDtext;form.Answer.value=D-A*C/1000;}我甚至不知道如何正确地注释…grrrr。无论如何,我应该把你上面的注释集成到我的脚本中吗?不是有两个计算函数,而是让一个计算函数根据输入是否有值从两个操作中选择一个?@Lauren很难将其理解为注释。我会把它移到你的任务中ion.谢谢-这就是我应该做的,添加问题还是删除原始部分…?很抱歉这么新手。@Lauren这有助于对话尽可能更新问题,以便将来的读者可以看到您的过程。
<label for="input1">Input 1</label>
<input type="text" name="input1" id="input1" /><br />
<label for="input2">Input 2</label>
<input type="text" name="input2" id="input2" /><br />
<input type="submit" value="Submit" id="submit" onclick="calculate();" <!-- you only need the onclick attribute if you're not using jQuery --> />
<!-- pseudo-code with jQuery -->
<script language="javascript" type="text/javascript">
    $("#submit").on('click', function() {
        var input1Val = $("#input1").val();
        var input2Val = $("#input2").val();

        if (input1Val != "" && input2Val != "") {
            alert("You may only enter a value in one input field.");
        } else if (input1Val != "") {
            calcFunc1(input1Val);
        } else if (input2Val != "") {
            calcFunc2(input2Val);
        } else {
            alert("You must enter a value in one of the input fields.");
        }
    });
</script>

<!-- pseudo-code with straight javascript -->
<script language="javascript" type="text/javascript">
    function calculate() {
        var input1Val = document.getElementById("input1").value;
        var input2Val = document.getElementById("input1").value;

        if (input1Val != "" && input2Val != "") {
            alert("You may only enter a value in one input field.");
        } else if (input1Val != "") {
            calcFunc1(input1Val);
        } else if (input2Val != "") {
            calcFunc2(input2Val);
        } else {
            alert("You must enter a value in one of the input fields.");
        }
    }
</script>