Я создаю форму, чтобы пользователи могли добавлять свои собственные продукты для продажи на веб-сайте. Javascript должен проверить, заполнены ли все поля, хотя он не работает. Почему не работает javascript?PHP isset не работает с пустым
PHP немного сложнее. Этот веб-сайт продает продукты в разных пакетах, чтобы обеспечить оптовую и розничную цены, поэтому для разных номеров доступно несколько вариантов ценообразования. Однако, если одна из факультативных опций ценообразования или номеров единиц заполнена, но соответствующего значения нет, я думаю, что это вызовет проблемы в строке, и нет причин для этого, кроме опечатки пользователя.
Чтобы избежать этого, если цена2 установлена, а units2 пуст, я хочу, чтобы форма была отклонена, и «вам нужно заполнить обе единицы и цены для каждой опции пакета», чтобы они были эхом. То же самое верно для инверсных и price3 и units3.
Так вот что должен делать PHP. Тем не менее, первый «если» триггеры каждый раз, поэтому «вам нужно заполнить обе единицы и цены для каждой опции пакета1». Почему это работает неправильно?
<script>
function validproform()
{
var a=document.forms["productentry"]["pname"].value;
var b=document.forms["productentry"]["pword"].value;
var c=document.forms["productentry"]["about"].value;
var d=document.forms["productentry"]["unitabout"].value;
var e=document.forms["productentry"]["price1"].value;
var f=document.forms["productentry"]["units1"].value;
if (a==null || a=="" || b==null || b=="" || c==null || c=="" || d==null || d=="" || e==null || e=="" || f==null || f=="")
{
alert("Required fields are not all filled out.");
return false;
}
</script>
<?php
if (isset($_POST['psubmit'])) {
if(isset($_POST['price2']) and empty($_POST['units2'])){
echo('You need to fill out both units and prices for each package option1');
}
elseif(isset($_POST['units2']) and empty($_POST['price2'])){
echo('You need to fill out both units and prices for each package option2');
}
elseif(isset($_POST['price3']) and empty($_POST['units3'])){
echo('You need to fill out both units and prices for each package option3');
}
elseif(isset($_POST['units3']) and empty($_POST['price3'])) {
echo('You need to fill out both units and prices for each package option4');
}
}
?>
<form name="productentry" action="" method="post" onsubmit="return validproform()">
Product Name: <input type="text" name="pname" maxlength="30"><br>
About: <input type="text" name="about" maxlength="250"><br>
Describe your product. What is unique about it, what does it do, what sets it apart?<br>
What each unit contains: <input type="text" name="unitabout" maxlength="250"><br>
For example: Are you selling, "A bag of chips" or "A box w/ 30 bags of chips" or "a carton of 10 boxes with 30 bags of chips each." Describe what one unit contains.<br>
Price: <input type="text" name="price1" maxlength="30"><br>
Number of units: <input type="text" name="units1" maxlength="30"><br>
----
Price 2(optional): <input type="text" name="price2" maxlength="30"><br>
Number of units(optional): <input type="text" name="units2" maxlength="30"><br>
Price 3(optional): <input type="text" name="price3" maxlength="30"><br>
Number of units(optional): <input type="text" name="units3" maxlength="30"><br>
Password: <input type="password" name="pword" maxlength="30"><br>
<input type="submit" name="psubmit">
</form>
Попробуйте одиночные кавычки для переменных A, B, C, D и т.д. ... Я вижу, вы использовали дважды. – pattyd
Вам не хватает закрывающей скобки для 'function validproform()' –
Почему это было downvoted? – pattyd