我正在使用以下代码验证'set'的输入字段。每组4个字段(宽度/高度/长度/重量)。 如果我的一组输入字段为空,那么它将不会在我的最终 $ all变量中显示该行数据。
以下是关于此主题的上一个主题:Removing Data from Variable if Input Fields incomplete - PHP - 这很有效。
但是,这次我使用“占位符”文本(输入字段 value 属性),因此我需要使用PHP来检查该占位符值是否存在。
这是我的伪代码,但我不确定如何使用常规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
这是我目前的PHP代码:
...
$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";
}
...
非常感谢您的任何指示,或者如果需要明确的话,请告诉我。
谢谢
答案 0 :(得分:1)
当你使用jQuery时,我会使用一些JavaScript清除提交时的输入字段:
$('form').submit(function() {
$(this).find('input[type=text]').each(function() {
var domElement = $(this).get(0);
if (domElement.value == domElement.defaultValue) {
domElement.value = '';
}
});
});
注意拼写错误,没有测试。
然后,您可以在PHP文件中检查空字符串,而不必显式声明所有可能的值(毕竟它们可能略有变化): if($ _POST ['inputName'] =='')
OR
你可以使用一个简单的for循环:
for ($i = 0, $numFields = 20; $i <= $numFields; ++$i) {
if ($_POST['p' . $i . 'width'] != 'Width (cm)' && $_POST['p' . $i . 'height'] != 'Height (cm)') {
// add row to table
}
}
答案 1 :(得分:1)
用HTML做这样的事情怎么样:
<input type="text" name="length[]">
<input type="text" name="width[]">
然后你可以在PHP中做这样的事情:
if(array_keys($_POST['length']) != array_keys($_POST['width']))
{
// Incomplete post
}
$all_keys = array_merge(array_keys($_POST['length']), array_keys($_POST['width']));
foreach($all_keys as $curr_key)
{
// $_POST['length'][$curr_key]
// $_POST['width'][$curr_key]
}
使用JS可以在提交之前验证来自客户端的信息。您应该始终检查您的值服务器端。