Formular aktualisieren ohne reload

Hi,

nö, das ist nicht schwierig. Da reicht schon ein leicht abgewandeltes Hallo Welt:

HTML:
<html>
   <head>
      <script type="text/javascript">
	 try{
	    req = new XMLHttpRequest();
	 } catch (e){
	    try{
	       req = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch (e){
	       try{
		  req = new ActiveXObject("Microsoft.XMLHTTP");
	       } catch (failed){
		  req = null;
	       }
	    }  
	 }
	 
	 function checkInput() {
	    req.open("GET", 'check.php?text=' + document.form1.text.value, true);
	    req.onreadystatechange = function(){            
	       switch(req.readyState) {
		  case 4:
		     if(req.status!=200) {
			alert("Fehler:"+req.status); 
		     }else{    
			if(req.responseText == "1") {
			   document.form1.submit(); //Prüfung erfolgreich -> Feuer!
			} else {
			   alert("Du hast nicht \"Hallo\" eingegeben!");
			}
		     }
		     break;

		  default:
		     return false;
		     break;     
	       }
	    };
	    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	    req.send(null);
	    return false; // wichtig, damit das Formular nicht abgesendet wird
	 }
	 
      </script>
   </head>
   <body>
<?php
   if(isset($_POST['text'])) {
      echo "<p>Formular mit Wert \"" . $_POST['text'] . "\" gesendet.</p>";
   }
?>
      <form name="form1" action="test.php" method="post" onsubmit="return checkInput();">
	 <input type="text" size="10" name="text">
	 <input type="submit" value="ab dafür">
      </form>
   </body>
</html>

Dazu eine check.php

PHP:
<?php
   if(isset($_GET['text']) && $_GET['text'] == "Hallo") {
      echo "1";
   } else {
      echo "0";
   }
?>

Das solltest Du auf Deine Bedürfnisse anpassen können.

LG
 
Hallo,
sorry das ich wieder störe!
Mit Ajax komme ich auch nicht wirklich weiter, kann sein das ich was falsch mache.
Ich habe es so ausprobiert:
HTML:
<script type="text/javascript">
function pdf() {
	document.form.action = "pdf.php";
	document.form.target = "_blank";
}

try {
req = new XMLHttpRequest();
} catch (e) {
	try {
		req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e){
		try {
			req = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed){
			req = null;
		}
	}
}
function checkInput() {
req.open("GET", 'check.php', true);
req.onreadystatechange = function() {
	switch(req.readyState) {
		case 4:
			if(req.status!=200) {
				alert("Fehler:"+req.status);
			} else {
			if(req.responseText == "1") {
				document.form.action = "send.php";
				document.form.target = "_self";
			} else {
				alert("Bitte vorerst das PDF erstellen! ");
			}
		}
		break;
		default:
			return false;
		break;
	}
};
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(null);
return false; // wichtig, damit das Formular nicht abgesendet wird
}
</script>
<form name="form" action="" method="post" target="">
    <input ... />
    <input ... />
    <input ... />
    <input name="PDF" type="submit" value="PDF erstellen" onclick="javascript:pdf();" />
    <input name="submit" type="submit" value="senden" onclick="javascript:checkInput();" />
</form>
check.php
PHP:
<?php 
	if(file_exists($_POST["name"].'.pdf')) {
		echo "1";
	} else {
		echo "0";
	}
?>
 
Zuletzt bearbeitet:
Hi,

Du übergibst den Namen aus dem Formular ja auch gar nicht an die check.php. Du musst den per Javascript auslesen und als URL-Parameter an check.php anhängen. Ausserdem ist das ein GET-Request. Also musst Du in dem PHP-Script auch $_GET['name'] verwenden.

LG
 
Hallo,
ich habe es jtzt so versucht:

Code:
function checkInput() {
req.open("GET", 'check.php?name=' + document.form.name.value, true);
...
}

und in PHP auch auf GET abgeändert, trotzdem keine positive Resultate.
Da ist immer noch was Faul und ich finde es nich heraus was. :confused:
Hast du vielleicht eine Idee?
 
Hi,

Du sendest das Formular durch Deinen Submit-Button gleichzeitig ab. Mach' es mal, wie in meinem Beispiel über onsubmit oder versuch's mit:

HTML:
<input name="submit" type="submit" value="senden" onclick="return checkInput();" />

Sollte eigentlich auch gehen.

LG
 
Hi,
habe ich ausprobiert.
Bei onsubmit wird, egal was von Button du betätigst,
immer auf "PDF erstellen" aufgevordert.
Bei onclick dagegen, kann man wenigstens das PDF wirklich erstellen, danach bekommt man immer wieder das Alert.
 
Zuletzt bearbeitet:
Zurück