I’m using the following code to validate a ‘set’ of input fields. 4 fields per set (width/height/length/weight). If a set of my input fields are empty then it won’t display that row of data in my final $all variable.
Here is a previous topic on the subject: Removing Data from Variable if Input Fields incomplete – PHP – this works great.
However, this time I am using “Placeholder” text (input field value attribute) and therefore I need my PHP to check whether that placeholder value exists.
Here is my Pseudo Code, however I’m unsure how to achieve with regular PHP:
if ((pNUM-VALUEheight = "Height (cm)" OR pNUM-VALUEwidth = "Width (cm)" OR pNUM-VALUElength = "Length (cm)" OR pNUM-VALUEweight = "Weight (kg)"))
Then
// Don't store in $all variable
Else
// Do store set of values in $all variable
End If
Here is my current PHP code:
...
$ierrors = array();
$all = '';
// Loop over the values 1 through 20
foreach( range( 1, 20) 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']
);
// Assume all values are empty.
$allEmpty = true;
// Validate every value
foreach( $values as $key => $value)
{
if( empty($value))
$ierrors[] = "Value $key is not set";
else
$allEmpty = false;
// 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
if (!$allEmpty)
$all .= implode( '|', $values) . "\n\n";
}
...
Many thanks for any pointers here or please let me know if any clarity is needed.
Thank you
As you’re using jQuery, I’d use a bit of JavaScript to clear the input fields on submit:
Watch out for typos, didn’t test.
You can then check in your PHP file for empty strings and don’t have to explicitly state all the possible values (they might change slightly, after all):
if ($_POST[‘inputName’] == ”)
OR
you could use a simple for loop: