How do I get the key values from $_POST and also that value in which i have field the data?

php get all post data
$_post array
php _get, $post data
php _post not getting values
php $_post empty
php post without form
php get post data json

I have a form in which there are 150 fields and I want to send only that key & value in an email which I have filled in the form on the time of submitting, not all value.

Currently On "$_POST" it is showing all key and value but I want only that value which I have filled in the input text.


On submit form and print $_POST i have its print like this

[a] => 11 
[b] => 11 
[c] => 11 
[d] => 11 
[d] => 
[e] => 
[f] => 
[d] => 

But i want that key and value both which have data

foreach($_POST as $key=>$value) {
    if($value!='') {
        $post[$key] = $value;

I think it may help you. $post will have all the data that you need.

PHP: $_POST, (Note that $HTTP_POST_VARS and $_POST are different variables and that There is no need to do global $variable; to access it within functions or methods. regexes to get the correct values out so they can be married with other data in Remember also that using [] as in index will cause a sequential numeric array to� The $_POST variable is also used to collect data from forms, but the $_POST is slightly different because in $_GET it displayed the data in the url and $_POST does not. The data that $_POST gets, is invisible to others and the amount that can be sent is not limited besides the 8MB max size.

Considering your post data as follows:

$_POST = array(
    'a' => '11', 
    'b' => 11, 
    'c' => 11, 
    'd' => null, 
    'e' => null, 

$to_delete = array(0 => false);
print_r(array_diff($_POST, $to_delete));

The working code is here:

getting all values for a custom field key (cross-post), You can also use the returned data to work out how many posts have these meta values by doing a simple loop over the returned data and� If your input field in HTML is "disabled", even if it contains text, $_POST will not return/contain any value. As an alternative, you can use "readonly" in your input field. add a note

You need to keep one extra hidden input field to store old value for each input element of your form. So if your form has 150 input element then there will be another 150 hidden fields and overall there will be 300 fields in the form (150 visible on the page and remaining 150 will not be visible to the user).

Initially, when the page loads, both the input element and the hidden element will have the same data but the user can change only visible input element and can submit the form.

In the PHP script, where this form post the data, you need to compare values of input element VS hidden element. If they are not the same then add new value in a new temporary array. This new temporary array will be used while sending the email.







loop on $_POST array {
    if ( hidden_field_1 != field_1) {
        // Store field_1 in temp to send it in email

How To Retrieve HTML Form Data With PHP, This means you can't access that element form data value after the form has Also, if the form data to be sent contains the space character, the scheme form field data, and it is used as the access key by the server script (PHP), The $_ POST variable is used by PHP to create an associative array with an� Plain objects also support similar methods, but the syntax is a bit different. Object.keys, values, entries. For plain objects, the following methods are available: Object.keys(obj) – returns an array of keys. Object.values(obj) – returns an array of values. Object.entries(obj) – returns an array of [key, value] pairs.

As an example of how array_filter will alter the final POST array consider the following demo:

<!DOCTYPE html>
<html lang='en'>
        <meta charset='utf-8' />
        <title>multiple fields, non-empty only selected</title>
        <form method='post'>
                /* for brevity only 10 results */
                for( $i=1; $i <= 10; $i++ ){
                    $checked = rand(0,5)==1 ? $i : '';
                    echo "<input type='hidden' name='field_$i' value='$checked' />";

                if( $_SERVER['REQUEST_METHOD']=='POST'){
                    /* results without filtering */
                    printf('<pre>%s</pre>',print_r( $_POST, 1 ) );

                    /* results AFTER filtering */
                    $_POST=array_filter( $_POST );
                    printf('<pre>%s</pre>',print_r( $_POST, 1 ) );
            <input type='submit' />

Example output:

    [field_1] => 1
    [field_2] => 
    [field_3] => 3
    [field_4] => 
    [field_5] => 5
    [field_6] => 
    [field_7] => 
    [field_8] => 
    [field_9] => 
    [field_10] => 10
    [field_1] => 1
    [field_3] => 3
    [field_5] => 5
    [field_10] => 10

The output of the two print statements are vastly different - the use of array_filter has removed all the empty form fields from the array - from that point processing of the array data is trivial using foreach or another method such as array_walk, array_map etc

PHP $_POST, PHP $_POST is a PHP super global variable which is used to collect form data after submitting $_POST is also widely used to pass variables. When a user submits the data by clicking on "Submit", the form data is sent to the file Then, we can use the super global variable $_POST to collect the value of the input field:� If I use a variable, I always declare it after pulling from get or post, the variables that I use from post and get are also validated for correct values. Also, something I have found handy for dealing with case sensitivity for get variables, (since sometimes if someone posts it to say, ICQ for someone else to visit, ICQ will lowercase the

Assuming I am understanding your requirement correctly, you could do this in a simple foreach loop

foreach ($_POST as $key => $val) {
    if ( $key == 'submit' ) {
    echo $key . " = " . $val . '<br>';

If there is more than one field then you can create an ignore list and text each field name against it.

$ignore_list = ['submit', 'other_field'];

foreach ($_POST as $key => $val) {
    if ( in_array($key, $ignore_list ) {
    echo $key . " = " . $val . '<br>';

Of course you can make the generated output look however you want I just used a simple echo for demo purposes.

Request and response objects | Django documentation, The Django Software Foundation deeply values the diversity of our developers, users, You can also read from an HttpRequest using a file-like interface with A dictionary of key/value parameters included in the CONTENT_TYPE header. FILES will only contain data if the request method was POST and the <form> that � $_POST is also widely used to pass variables. The example below shows a form with an input field and a submit button. When a user submits the data by clicking on "Submit", the form data is sent to the file specified in the action attribute of the <form> tag. In this example, we point to the file itself for processing form data.

List of HTTP header fields, A few fields can contain comments (i.e. in User-Agent, Server, Via fields), which can be ignored by software. Many field values may contain a quality (q) key-value � The GET method produces a long string that appears in your server logs, in the browser's Location: box. The GET method is restricted to send upto 1024 characters only. Never use GET method if you have password or other sensitive information to be sent to the server. GET can't be used to send binary data, like images or word documents, to the

<input type="submit">, If you don't specify a value , the button will have a default label, This attribute is also available on <input type="image"> and <button> Permitted values are: This is the default value. post: The form's data is included in the body of Try entering some text into the text field, and then submitting the form. A key-value database is a type of nonrelational database that uses a simple key-value method to store data. A key-value database stores data as a collection of key-value pairs in which a key serves as a unique identifier. Both keys and values can be anything, ranging from simple objects to complex compound objects.

Use URL Variables to Pass Data, URL Variables make for a quick method for pre-populating existing data into a survey. If you wanted to add a variable named 'userid' with a value of '121,' and also Click the Select a Merge Code link below the Populate with the following field. value makes your life a little easier as you will not have to key the variable �

  • $_POST=array_filter( $_POST ); ?
  • So pick the values out of $_POST that you are interested in and ignore the rest
  • @Ram Thanks for your comment , i also want key value
  • Hi , its not really clear what you are asking here. If you can provide an example maybe we can help
  • On submit form and print $_POST i have its print like this [a] => 11 [b] => 11 [c] => 11 [d] => 11 [d] => [e] => [f] => [d] => But i want that key and value both which have data
  • Yes, all value and also key of that value , because i have to send both in email key and value of that key
  • I am also getting the "submit - SUBMIT" value in print_r , how i exclude this
  • I am also getting the "submit - SUBMIT" value in print_r , how i exclude this
  • you can use array_pop to delete the last element from array
  • I am also getting the "submit - SUBMIT" value in print_r , how i exclude this
  • Thanks for your comment
  • I am also getting the "submit - SUBMIT" value in print_r , how i exclude this
  • @Sheenu I have amended my answer to not report the submit button