shibbir ahmed
shibbir ahmed

Reputation: 1024

How can I show dynamic error message using PHP?

I have a html form and this form is validating by PHP with jQuery/Ajax request.

Currently it's working perfectly. Now I want to show a dynamic error message.

For e. g:

I am validating integer number using following function :

function only_number ($string) {    
    if( preg_match('/^[0-9]+$/', $string ) ) {
        return true;
    } else {
        return false;
    }
}

This function is implementing by following way :

$msg = array();
$msg['error'] = false;

if(empty($emp_id)) {
    $msg[] = 'Select assign to';
    $msg['error'] = true;
} elseif( only_number($emp_id) === false ) {
    $msg[] = 'Assign to must be numeric value';
    $msg['error'] = true;
}

echo json_encode($msg); 

You see that I am showing error message

Assign to must be numeric value

in the function implemented page e.g. update.php

It's very time consuming that I need to type several type of error message every time.

NOW, I want to write this error message in the function and it will show/implemented on validating page like : update.php page.

How can I do this ?

Upvotes: 1

Views: 416

Answers (2)

In stead of returning true/false you can also return a string with the error message

function only_number ($string) {    
if (empty ($string) return 'Select assign to';    
if(!preg_match('/^[0-9]+$/', $string ) ) return 'Assign to must be numeric value';
else return 'no error';
}

next in your code

if (only_number($emp_id) <> 'no error') echo (json_encode(only_number($emp_id)));

Upvotes: 0

u_mulder
u_mulder

Reputation: 54831

You can return array from your function. E.g:

function only_number ($string) {    
    $result = array(
        'success' => false,
        'error' => '',
    );

    if( preg_match('/^[0-9]+$/', $string ) ) {
        $result['success'] = true;
    } else {
        $result['error'] = 'Assign to must be numeric value';
    }

    return $result;
}

And check:

if (empty($emp_id)) {
    $msg[] = 'Select assign to';
    $msg['error'] = true;
} else {
    $check = only_number($emp_id);
    if ($check['success'] == false) {
        $msg[] = $check['error'];
        $msg['error'] = true;
    }
}

Upvotes: 1

Related Questions