0

I am in trouble while pass user's input value via array from HTML (Using AJAX) To php page (In fetching Array) . Is method I use is correct ? I didn't get value in my PHP page.

First I assign user's value to variable

var first_name = $("[name='first_name']").val();
var last_name = $("[name='last_name']").val();

Then Create Its array.

var MyArray = {"firstname": first_name, "lastname": last_name};

And Here How I pass value to external server's php file

$.ajax({
        type: "POST",
        url: GolbalURL+"updategeneralinformation.php",
        data: "userarray="+ MyArray,
        dataType:'json',
        success: function(response){
            if(response.success) {
                navigator.notification.alert(
                    'Ok',
                    // No need for Callback function
                    'Ok',
                    'Ok'
                )
            }
            else {
                navigator.notification.alert(
                    'Something went wrong while attempting update',
                    // No need for Callback function
                    'Atempt Fail',
                    'Try Again'
                )
            }
        },
        error: function(error){
            navigator.notification.alert(
                    error,
                    // No need for Callback function
                    'Something wrong',
                    'Try Again'
                )
        }
    });
    return false;

Now PHP File code for retrieve Requested array from HTML page and run PHP-MySQL Update Query

$get_array = $_REQUEST['userarray'];
$query = mysql_query("UPDATE ".$db.".users SET first_name='$get_array["firstname"]', last_name='$get_array["lastname"]' ");
mysql_query($query);
   if (!mysql_query($query, $con)) {
  //die('Error: ' . mysql_error());
  $response['success'] = false;
} else {
  $response['success'] = true;
}

3 Answers 3

1

Use

data: MyArray,

or

data: {firstname: first_name, lastname: last_name},

instead of

data: "userarray="+ MyArray,

at server side

$get_array = $_POST;

and

$query = mysql_query("UPDATE ".$db.".users SET first_name='" . $get_array["firstname"] . "', last_name='" . $get_array["lastname"] . "'");

Note: the mysql_query is deprecated, use pdo or mysqli, and its unsecure in this form (mysql_real_escape_string() missing)

Sign up to request clarification or add additional context in comments.

3 Comments

Axel, Thanks for answer but not working, is I need to change anything at "first_name='$get_array["firstname"]" ?
Yes, Thank you very much Axel. its help me alot. And I can also use this method for ADD Statement, right ?
Yes, I guess, just change needed rows.
1

You've convert your javascript array into a string when you do this:

data: "userarray="+ MyArray,

So basically, php just gets a string. You may want to do this in your javascript:

var MyArray = {"firstname": first_name, "lastname": last_name};
data: MyArray,

Or

data: {"firstname": first_name, "lastname": last_name},

And in your php script:

$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];

2 Comments

Good Explanation user :)
Glad I can help, Shivam Pandya ^_^
0
var MyArray = {"firstname": first_name, "lastname": last_name};
data: MyArray,

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.