使用变量进行PHP复选框验证

使用变量进行PHP复选框验证,php,javascript,html,Php,Javascript,Html,我试图对我的代码进行一些验证,如果没有从项目列表dsiplayed(来自txt文件)中选择任何项目,则会产生错误。如果没有输入访客名称,我已经设置了验证,但是为复选框指定的名称是一个变量,因此设置一些验证非常困难,任何关于如何实施的想法都将不胜感激 <script> function validateName() { var x=document.forms["purchase"]["visitor"].value;

我试图对我的代码进行一些验证,如果没有从项目列表dsiplayed(来自txt文件)中选择任何项目,则会产生错误。如果没有输入访客名称,我已经设置了验证,但是为复选框指定的名称是一个变量
,因此设置一些验证非常困难,任何关于如何实施的想法都将不胜感激

 <script>
        function validateName()
        {
            var x=document.forms["purchase"]["visitor"].value;
            if (x==null || x=="")
            {
                alert("Visitor name must be entered");
                return false;
            }
        }
    </script>
</head>

<body>

    <h1>Items Available</h1>

    <form name="purchase" action="confirm.php" method="post" onsubmit="return validateName()">
        <table>

            <h3>Visitor Name: <input type='text' name='visitor'></h3>
            <tr><th></th><th></th><th></th><th>Price</th><th>&#10004;</th><th>QTY</th></tr>

            <?php
            if (!($data = file('items.txt'))) {
                echo 'ERROR: Failed to open file! </body></html>';
                exit;
            }
            foreach ($data as $thedata) {
                list($partno, $name, $description, $price, $image) = explode('|', $thedata);
                echo "<tr><td><img src='$image' width='60' height='60' alt='image'></td><td><h3>$name</h3></td><td>&nbsp;&nbsp;&nbsp;&nbsp;$description</td>
                    <td>&nbsp;&nbsp;&nbsp;&nbsp;<b>&pound;$price</b></td><td><input type='checkbox' name='$partno'></td><td><input type='text' size='1' name='qty' value='1'</td></tr>";
            }
            ?> 

        </table>
它失败得很惨

新代码

<script>
        function validateName()
        {
            var x=document.getElementById("purchase").value
            if (x==null || x=="")
            {
                alert("Visitor name must be entered");
                return false;
            }
        }
    </script>
</head>

<body>

    <h1>Items Available</h1>

    <form id="purchase" name="purchase" action="confirm.php" method="post" onsubmit="return validateName()">
        <table>

            <h3>Visitor Name: <input type='text' name='visitor'></h3>
            <tr><th></th><th></th><th></th><th>Price</th><th>&#10004;</th><th>QTY</th></tr>

            <?php
            if (!($data = file('items.txt'))) {
                echo 'ERROR: Failed to open file! </body></html>';
                exit;
            }
            foreach ($data as $thedata) {
                list($partno, $name, $description, $price, $image) = explode('|', $thedata);
                echo "<tr><td><img src='$image' width='60' height='60' alt='image'></td><td><h3>$name</h3></td><td>&nbsp;&nbsp;&nbsp;&nbsp;$description</td>
                    <td>&nbsp;&nbsp;&nbsp;&nbsp;<b>&pound;$price</b></td><td><input type='checkbox' name='$partno'></td><td><input type='text' size='1' name='qty' value='1'</td></tr>";
            }
            ?> 

        </table>

函数validateName()
{
var x=document.getElementById(“购买”).value
如果(x==null | | x==“”)
{
警报(“必须输入访客姓名”);
返回false;
}
}
可用项目
访客姓名:
价格✔;数量

首先在JavaScript访问它的表单中使用HTML属性“id”

<form id="purchase" name="purchase" action="confirm.php" method="post" onsubmit="return validateName()">

如果要传递$partno变量,则应将其作为隐藏变量传递

<input type="hidden" value=$partno">

function validateName()
   {
    var x=document.forms["purchase"]["$partno"].value;
    if (x==null || x=="")
     {
        alert("Select atleast one item");
        return false;

这对您很好--

访客姓名:
和脚本使用

<script>
    function validateName()
    {
        var x = document.getElementById("name").value
        if (x==null || x=="")
        {
            alert("Visitor name must be entered");
            return false;
        }
    }
</script>

函数validateName()
{
var x=document.getElementById(“名称”).value
如果(x==null | | x==“”)
{
警报(“必须输入访客姓名”);
返回false;
}
}

我不熟悉JavaScript。您能否展开答案中的“id”部分。使用as,然后如何验证该选项以确保至少勾选了一个或多个框?为我的无知道歉。
function validateItem(){var x=document.getElementById(“购买”).value;if(x==null | | x==”){alert(“选择至少一项”);return false;
我尝试了这个方法,但没有成功,然后使用--x=document.getElementById(“purchase”).value要比较您的值,请使用此xfunction validateItem(){var x=document.getElementById(“purchase”).value如果(x==null | | x==“”){alert(“至少选择一项”);返回false;这是我试图验证的勾选框,即,如果未选择任何勾选框,则会显示一个错误,而不是访问者姓名…无论如何,谢谢。
<input type="hidden" value=$partno">

function validateName()
   {
    var x=document.forms["purchase"]["$partno"].value;
    if (x==null || x=="")
     {
        alert("Select atleast one item");
        return false;
<h3>Visitor Name: <input type='text' id="name" name='visitor'></h3>
<script>
    function validateName()
    {
        var x = document.getElementById("name").value
        if (x==null || x=="")
        {
            alert("Visitor name must be entered");
            return false;
        }
    }
</script>