Jump to content

newbe question (form & ajax)


syncedit

Recommended Posts

Hello,

 

Thanks for taking the time to look at my question.

 

I use ajax to create a dynamic form:

step 1) form has some <input type=radio> and <input type=checkbox> fields to start with.

step 2) this value is sent via ajax to somefile.php file. That somefile.php file generates a new part of the form (containing <input type=radio>, <input type=checkbox>  and <inpu typet=text> fields) > so the user will fill in more variables than he started with.

 

When I submit this form (<input type=submit>, no javascript involved), only the original form variables are transferred.

 

 

I use a basic javascript to transfer data between the form & soemfile.php

  • <script LANGUAGE="javascript" TYPE="text/javascript">
    <!--
    //Browser Support Code
    function showfieldsbyclass(theclass,initiate){
    var ajaxRequest;
    try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
    } catch (e){
    // Internet Explorer Browsers
    try{
    ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try{
    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e){
    // Something went wrong
    alert("Your browser broke!");
    return false;
    }
    }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
    ajaxclass.innerHTML = ajaxRequest.responseText;
    }
    }
    ajaxRequest.open('GET', 're_ajax.php?function=showfieldsbyclass&class='+theclass+'&initiate='+initiate, true);
    ajaxRequest.send(null);
    }
     
     
    //-->
    </script>
     
    and this is the javascript that I use: onclick=\"javascript:showfieldsbyclass('0','');\"

 

 

So the ajax to build my additional form fields works great but the problem is that only the original forms variables/values are sent when I press the submit button.

 

o jeah.. one more thing: The new form variables/values are transmitted on IE, but not on firefox!

 

Thanks,

Cedric

Link to comment
https://forums.phpfreaks.com/topic/39557-newbe-question-form-ajax/
Share on other sites

syncedit,

 

It sounds like the issue is with the way the php file ( re_ajax.php ) builds the response page.

 

Post the source here so we can play around with it.

 

Scot L. Diddle, Richmond VA

 

 

Example: http://www.cedriccolpaert.be/ajaxtest/

 

index.html

<html><head><title>test</title></head><body> 
<script LANGUAGE="javascript" TYPE="text/javascript">
<!-- 
//Browser Support Code
function showareas(cat){
var ajaxRequest; 
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
	try{
	ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e){
	// Something went wrong
	alert("Your browser broke!");
	return false;
	}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
ajaxareas.innerHTML = ajaxRequest.responseText;
}
}
ajaxRequest.open('GET', 'ajax.php?cat='+cat, true);
ajaxRequest.send(null); 
}
//-->
</script>

<table cellpadding="1" cellspacing="1">
<FORM METHOD=POST ACTION="printvariables.php">
<tr><td><input type="radio" name="category" value="category_one" onclick="javascript:showareas('category_one');" checked>category one</td></Tr>
<tr><td><input type="radio" name="category" value="category_two" onclick="javascript:showareas('category_two');">category two</td></Tr>
<tr><td><input type="radio" name="category" value="category_three" onclick="javascript:showareas('category_three');">category three</td></Tr>
<tr><td> </td></tr>
<tr><td ID="ajaxareas" align="left"> </td></tr>
<tr><td> </td></tr>
<tr><td><input type="submit" value="submit"></td></tr>
</FORM>
</table>

 

ajax.php
<?
if ($_GET['cat'] == 'category_one') {
echo '
variable category_one_var: <input type="text" name="category_one_var"> <br>
variable category_one_var2: <input type="checkbox" name="category_one_var2" value="some value"> <br>
';
}
elseif ($_GET['cat'] == 'category_two') {
echo '
variable category_two_var: <input type="text" name="category_two_var"> <br>
variable category_two_var2: <input type="checkbox" name="category_two_var2" value="some value"> <br>
';
}
elseif ($_GET['cat'] == 'category_three') {
echo '
variable category_three_var: <input type="text" name="category_three_var"> <br>
variable category_three_var2: <input type="checkbox" name="category_three_var2" value="some value"> <br>
';
}
?>

 

printvariables.php
<?
print_r ($_REQUEST);
?>

 

thanks

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.