• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Formular send

evi

New member
hallo
ich bin recht neu in der Materie und hab folgende Frage.

Ich sende ein Formular mit vorname und nachname an ein CGI Handler , das wird auch richtig empfangen .
ich wollte in meinem Formular dan den wert für Vorname und Nachname angezeigt haben nur leider funktioniert das nicht so richtig.


vielleicht könnte mir Hand weiterhelfen was hier verkehrt ist.
mfg

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
            <meta name="viewport" content="2000, user-scalable=no">
			<link rel="stylesheet" type="text/css" href="Z_style.css">
            <title>SWITCH</title> 

				<script type="text/javascript">
				  var xmlhttp;
				  var text;

					function getFormFields(form){
					  var e = form.querySelectorAll("input,select");
					  var res = {};
					  for( var i=0, n=e.length; i<n; i++ ){
					    if( !e[i].name )
					      continue;
					    res[e[i].name] = e[i].value;
					  }
					  return res;
					}

					function loadXMLDoc(url,cfunc)
					{
						if (window.XMLHttpRequest)
						{
							xmlhttp=new XMLHttpRequest();
						}
						
						else
						{
							xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
						}
					 xmlhttp.onreadystatechange=cfunc;
					 xmlhttp.open("GET",url,true);
					 xmlhttp.send();
					}


					function toQueryString( p )
					{
					 var ret = "";
						for( var k in p )
							ret += ( ret=='' ? '?' : '&' ) + encodeURIComponent(k) + '=' + encodeURIComponent(p[k]);
						return ret;
					}
					
				    
					function Test_formular1( event, form )
					{
						var params = getFormFields(form);
						params.t = Math.random();
						loadXMLDoc(form.action + toQueryString(params),
							
							function()
							{
								if( xmlhttp.readyState==4 && xmlhttp.status==200 )
								{
									document.getElementById("vorname").value = xmlhttp.responseText;
				
								}
							}
						);
					  event && event.preventDefault();
					}
					
					function Test_formular2( event, form )
					{
						var params = getFormFields(form);
						params.t = Math.random();
						loadXMLDoc(form.action + toQueryString(params),
							
							function()
							{
								if( xmlhttp.readyState==4 && xmlhttp.status==200 )
								{
									document.getElementById("nachname").value = xmlhttp.responseText;
				
								}
							}
						);
					  event && event.preventDefault();
					}	
					
                    function test(event,form)
                    {
                        Test_formular1(event,form);
                        Test_formular2(event,form);
                    }


					
 				</script>			
			
			
</head>
<body >

</body >


<form method="get" onsubmit="test(event,this); return false;" action="/switch.cgi">
   
	<label class="h2" form="person">Namenseingabe</label>
    <label for="vorname">Vorname</label> 
    <input type="text" name="vorname" id="vorname" maxlength="30">
 
	<label class="h2" form="person">Namenseingabe</label>
    <label for="nachname">Nachname</label> 
    <input type="text" name="nachname" id="nachname" maxlength="30">

	
	
	
<input type="submit" value="Senden" />  
</form>
</html>

Code:
:######################
static char *SWITCH_CGIHandler( int iIndex, int iNumParams, char *pcParam[], char *pcValue[] )
{ 
  
   uint32_t i=0;
   int  index, index2;
  
   



  

   index = FindCGIParameter ( "vorname", pcParam, iNumParams );
        
   DrawString(0,50,pcParam[0],&Arial_16x25,WHITE,RED);  
   DrawString(0,79,pcValue[0],&Arial_16x25,WHITE,RED);  
   
  if(index != -1)
  {
     
    for (i=0; i<2; i++)
    {
      DrawString(0,150,pcValue[0],&Arial_16x25,WHITE,RED);  
      
          if (strcmp(pcParam[i] , "vorname")==0)   
      {
      strcat((char *)(data_response_buf,"ja1");   
      }
      if (strcmp(pcParam[1] , "nachname")==0)   
      { 
         strcat((char *)(data_response_buf),"ja2"); 
      }
}
    
clear_response_bufer(data_response_buf); 
  }  
  /* uri to send after cgi call*/
return RESPONSE_PAGE_SET_CGI_RSP_URL;
}
 
Zuletzt bearbeitet von einem Moderator:
hallo evi!
Willkommen!
was genau ist deine frage? was sagt die browserkonsole? was sagt das server error log? was ist das untere für ein code? kann man das problem auch mit weniger code nachstellen?
 
Ich denke, dass die Antwort von deinem serverseitigen Skript einfach nicht so aussieht, wie du denkst. Was tut denn die Funktion DrawString? Und wo ist data_reponse_buf definiert? Was heißt denn genau "funktioniert nicht so richtig"?

Auch verstehe ich nicht, warum du die Daten zwei mal an den Server schickst.

PS: Deine getFormFields ist nicht in allen Fällen korrekt. (z.B. bei Checkboxen)
 
Zurück
Oben