Solved

Fail to get variable value after submit at php dynamic js injection form

Posted on 2010-11-23
5
300 Views
Last Modified: 2012-05-10
I create a file input area after clicked 'add button’, first element value is ‘AAA’:

<input type="text" readonly="true" name="ndiv_partd1[]" id="ndiv_partd1[]" size="30" value="AAA" maxlength="30" style="text-transform: uppercase; border: 0pt none;">

And second element with value ‘BBB’
<input type="text" readonly="true" name="ndiv_partd1[]" id="ndiv_partd1[]" size="30" value="BBB" maxlength="30" style="text-transform: uppercase; border: 0pt none;">

When I click submit button, the php can’t read and get the variable value ndiv_partd1[] at all at Firefox/Google Chrome browser.  However it work fine at Internet Explorer 8.0.

When I echo the following statement:

foreach ($ndiv_partd1 as $nndiv_lp => $ndiv_alt_val) {
echo "<BR>[".$nndiv_lp."] [".$ndiv_alt_val."]  
}

Output:
[0] [AAA] >>>>> 
[1] [BBB] >>>>>

It’s no problem for me to get the value for each variables at IE8.0, however having difficulty at those Firefox/Google Chrome browser.
0
Comment
Question by:chwong67
  • 2
  • 2
5 Comments
 
LVL 83

Accepted Solution

by:
Dave Baldwin earned 250 total points
ID: 34202856
From this page: http://www.php.net/manual/en/language.variables.external.php

"Dots and spaces in variable names are converted to underscores. For example <input name="a.b" /> becomes $_REQUEST["a_b"]. "

This means that you probably should not use '_' in names that get sent from forms to PHP.
0
 
LVL 9

Author Comment

by:chwong67
ID: 34202946
Please note that the above code work fine in Internet explorer 8 but failed in Firefox/Google Chrome browser.
0
 
LVL 83

Expert Comment

by:Dave Baldwin
ID: 34203016
Please note that I would consider Firefox/Chrome to be correct and IE wrong.  If you remove the underscore and it still doesn't work, then I would concede that that isn't the problem.  You could try putting this code at the top of your PHP page to see what it is receiving from each browser.
print_r($_REQUEST);

Open in new window

0
 
LVL 109

Assisted Solution

by:Ray Paseur
Ray Paseur earned 250 total points
ID: 34207617
Install this and run it to see the moving parts.  You do not need to remove the underscores; but you do need to understand the risk of having two form input elements named like a.b and a_b - the mung process would destroy the value of one of these elements.

Also please read the notes on this man page.  You must address the $_POST array directly.
http://php.net/manual/en/security.globals.php

HTH, ~Ray
<?php // RAY_temp_foo.php
error_reporting(E_ALL);
echo "<pre>";

// SHOW THE SUBMITTED DATA
if (!empty($_POST))
{
    var_dump($_POST);
    foreach ($_POST["ndiv_partd1"] as $thing)
    {
        echo PHP_EOL . "HERE IS $thing";
    }
}

// DROP OUT OF PHP INTO HTML
?>

<form method="post">
<input type="text" readonly="true" name="ndiv_partd1[]" id="ndiv_partd1[]" size="30" value="AAA" maxlength="30" style="text-transform: uppercase; border: 0pt none;">
<input type="text" readonly="true" name="ndiv_partd1[]" id="ndiv_partd1[]" size="30" value="BBB" maxlength="30" style="text-transform: uppercase; border: 0pt none;">
<input type="submit">
</form>

Open in new window

0
 
LVL 109

Expert Comment

by:Ray Paseur
ID: 34207628
A public version of that little script is available here:
http://www.laprbass.com/RAY_temp_foo.php
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
This article discusses how to create an extensible mechanism for linked drop downs.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.

815 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now