表示されたアイテムのリストからアイテムが選択されていない場合にエラーを生成するために、コードにいくつかの検証を適用しようとしています (txt ファイルから取得されます) 訪問者名が入力されていない場合に検証を設定しましたチェックボックスは変数である<input type='checkbox' name='$partno'>
ため、検証を設定するのが非常に難しくなっています。これを実装する方法についてのアイデアをいただければ幸いです。
<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>✔</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> $description</td>
<td> <b>£$price</b></td><td><input type='checkbox' name='$partno'></td><td><input type='text' size='1' name='qty' value='1'</td></tr>";
}
?>
</table>
これまで私が試した...
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("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>✔</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> $description</td>
<td> <b>£$price</b></td><td><input type='checkbox' name='$partno'></td><td><input type='text' size='1' name='qty' value='1'</td></tr>";
}
?>
</table>