У меня есть 2 набора из 4 полей ввода в моей HTML-форме. Я ожидаю, что в конечном итоге у вас будет более 20 наборов, но для этого примера они предоставили всего 2.Удаление данных из переменной, если поля ввода неполные - PHP
Можно , если «набор» полей неполно, что я могу просто удалить эту строку из моих результирующих $ все переменной. Поэтому вместо того, чтобы иметь строку с данными '| | | |» он просто будет совершенно пустым.
Это просто поможет очистить вещи.
Этого было бы достаточно легко достичь?
Вот мой текущий stuff.php сценарий, который я использую для тестирования.
<html>
<head>
<title>Test PHP</title>
</head>
<body>
<?php
if (isset($_POST['sendform'])) {
$ierrors = array();
$all = '';
// Loop over the values 1 through 2
foreach(range(1, 2) as $i)
{
// Create an array that stores all of the values for the current number
$values = array(
'p' . $i . 'height' => $_POST['p' . $i . 'height'],
'p' . $i . 'width' => $_POST['p' . $i . 'width'],
'p' . $i . 'length' => $_POST['p' . $i . 'length'],
'p' . $i . 'weight' => $_POST['p' . $i . 'weight']
);
// Validate every value
foreach($values as $key => $value)
{
if(empty($value))
{
$ierrors[] = "Value $key is not set";
}
// You can add more validation in here, such as:
if(!is_numeric($value))
{
$ierrors[] = "Value $key contains an invalid value '$value'";
}
}
// Join all of the values together to produce the desired output
$all .= implode('|', $values) . "\n\n";
}
var_dump($all);
}
?>
<form action="stuff.php" method="post">
<div id="npup0" class="hidden">
<div class="parcel-group">
<div class="parcel-title">
<label for="p1weight">Parcel 1</label>
</div>
<div class="minis weight">
<input type="text" id="p1weight" name="p1weight" value="<?php if ((isset($_POST['sendform'])) && (!empty($_POST['p1weight']))) { echo htmlspecialchars($_POST['p1weight']); } ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
</div>
<div class="minis length">
<input type="text" id="p1length" name="p1length" value="<?php if ((isset($_POST['sendform'])) && (!empty($_POST['p1length']))) { echo htmlspecialchars($_POST['p1length']); } ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
</div>
<div class="minis width">
<input type="text" id="p1width" name="p1width" value="<?php if ((isset($_POST['sendform'])) && (!empty($_POST['p1width']))) { echo htmlspecialchars($_POST['p1width']); } ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
</div>
<div class="minis height">
<input type="text" id="p1height" name="p1height" value="<?php if ((isset($_POST['sendform'])) && (!empty($_POST['p1height']))) { echo htmlspecialchars($_POST['p1height']); } ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
</div>
</div>
</div>
<div id="npup1" class="hidden">
<div class="parcel-group">
<div class="parcel-title">
<label for="p1weight">Parcel 2</label>
</div>
<div class="minis weight">
<input type="text" id="p2weight" name="p2weight" value="<?php if ((isset($_POST['sendform'])) && (!empty($_POST['p2weight']))) { echo htmlspecialchars($_POST['p2weight']); } ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
</div>
<div class="minis length">
<input type="text" id="p2length" name="p2length" value="<?php if ((isset($_POST['sendform'])) && (!empty($_POST['p2length']))) { echo htmlspecialchars($_POST['p2length']); } ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
</div>
<div class="minis width">
<input type="text" id="p2width" name="p2width" value="<?php if ((isset($_POST['sendform'])) && (!empty($_POST['p2width']))) { echo htmlspecialchars($_POST['p2width']); } ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
</div>
<div class="minis height">
<input type="text" id="p2height" name="p2height" value="<?php if ((isset($_POST['sendform'])) && (!empty($_POST['p2height']))) { echo htmlspecialchars($_POST['p2height']); } ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
</div>
</div>
</div>
<p><input type="submit" value="click me" id="sendform" name="sendform" /></p>
</form>
</body>
</html>
Большое спасибо за любые указатели. Некоторое время боролся с этим.
Зачем использовать диапазоны? вместо этого у вас есть два разделенных имени более чем достаточно для представления –
Привет Сэм. Я использую диапазоны, поскольку, как я полагаю, в конечном итоге у вас будет более 20 наборов из этих 4 полей ввода. – michaelmcgurk