問題がどこにあるのかはよくわかりませんが、変数をajaxに渡しており、!$varnameでチェックしたときに空白を渡してもキャッチされません。
これが私のajax関数です:
var subscribe = function(){
var dataString = $("#subinput").val();
$.ajax ({
url: '<?php echo $path ?>',
type: 'POST',
data: 'email=' + dataString.value,
datatype: 'JSON',
success: function(results){
if(results.err == '1'){
$('.onconfirmation').css('color','#f00');
}else{
$('.onconfirmation').css('color','#5A5A5A');
}
$('.onconfirmation').innerHTML(results.message);
$('.onconfirmation').fadeIn();
//alert(results);
}
});
これが私のPHPです:
<?php
$email = $_POST['email'];
if(!$email){
$o['err'] = '1';
$o['message'] = 'Please do not leave this field blank';
}/*elseif(filter_var($email, FILTER_VALIDATE_EMAIL)){
$o['err'] = '1';
$o['message'] = 'Please enter a valid email address';
}else{
$o['err'] = '0';
$o['message'] = 'Thank you for your subscription';
}*/
ob_start();
var_dump($o);
$out = ob_get_clean();
mail('[REDACTED]','debug',$out);
//$o = json_encode($o);
//return ($o);
?>
ご覧のとおり、現時点ではデバッグ状態ですが、これに空白の値を渡すと、受信する電子メールはですNULL
。$email
変数ではなく変数を自分自身に電子メールで送信すると、$out
取得する電子メールはですが、ifステートメントからundefined
ifを削除すると、取得する電子メールは次のようになります。!
array(2) {
["err"]=>
string(1) "1"
["message"]=>
string(36) "Please do not leave this field blank"
}
非常に単純なものが欠けていると確信しています。私はいつもそうですが、正直なところ、これを理解することはできません。どんな助けでも大歓迎です。乾杯。