ajax aansturen

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
Hoe kan ik deze ajax functie aansturen?
Hij moet aangestuurd worden na het veranderen van de checkbox.

PHP:
<? $_POST['binnen_gekomen'] = "true";?>

<script>
function datum(strURL)
{         
 var req = getXMLHTTP(); // fuction to get xmlhttp object
 if (req)
 {
  req.onreadystatechange = function()
 {
  if (req.readyState == 4) { //data is retrieved from server
   if (req.status == 200) { // which reprents ok status                    
     document.getElementById('drop').innerHTML=req.responseText;
  }
  else
  { 
     alert("There was a problem while using XMLHTTP:\n");
  }
  }            
  }        
req.open("GET", strURL, true); //open url using get method
req.send(null);
 }
}
<head>
<style type="text/css">
.style10 {
	font-size: small;
}
</script>
</style>
</head>

<FORM style="position: absolute; width: 170px; height: 139px; z-index: 1; left: 782px; top: 0px;" 
id="layer1" class="style3" name"zoeken" target="I1" method="POST" 
action="../../loggedin/orders/order_zoekdatum.php"
style="width: 100px" class="style10">

<span class="style10">

<input type="checkbox" id="binnen_gekomen" name="binnen_gekomen" checked="checked" 
onclick="if (this.checked!=true) { document.getElementById('verstuurd').checked=true } 
else { document.getElementById('verstuurd').checked=false } " /></span> Ontvangen<br />

<span class="style10">

<input type="checkbox" id="verstuurd" name="verstuurd" 
onclick="if (this.checked!=true) { document.getElementById('binnen_gekomen').checked=true } 
else { document.getElementById('binnen_gekomen').checked=false }" /></span> Verzonden


<div id="drop">

<select name="zoekdatum" style="width: 110px"> 
<?
include ('dropfill.php');
?>

<input type="submit" name="zoeken" value="Zoeken">
</select></div>
</FORM>
 
Daar moet tussen haken waarschijnlijk nog 'dropfill.php' staan. Daarnaast moet je dan

HTML:
<select name="zoekdatum" style="width: 110px"> 

<!-- Hier je huidige code -->

<input type="submit" name="zoeken" value="Zoeken">
</select>

Toevoegen aan dropfill.php.

[EDIT]
Oh ja, een submit button in een select?
[/EDIT]
 
Ik heb onChance = "dropfill.php" bij een checkbox gezet. en ook het dropfillphp aangepast.

Maar ik krijg een fout op de pagina melding.

Dit is nu mij code:
PHP:
<? $_POST['binnen_gekomen'] = "true";?>
 
<script>
function datum(strURL)
{         
 var req = getXMLHTTP(); // fuction to get xmlhttp object
 if (req)
 {
  req.onreadystatechange = function()
 {
  if (req.readyState == 4) { //data is retrieved from server
   if (req.status == 200) { // which reprents ok status                    
     document.getElementById('drop').innerHTML=req.responseText;
  }
  else
  { 
     alert("There was a problem while using XMLHTTP:\n");
  }
  }            
  }        
req.open("GET", strURL, true); //open url using get method
req.send(null);
 }
}
<head>
<style type="text/css">
.style10 {
    font-size: small;
}
</script>
</style>
</head>
 
<FORM style="position: absolute; width: 170px; height: 139px; z-index: 1; left: 782px; top: 0px;" 
id="layer1" class="style3" name"zoeken" target="I1" method="POST" 
action="../../loggedin/orders/order_zoekdatum.php"
style="width: 100px" class="style10">
 
<span class="style10">
 
<input type="checkbox" id="binnen_gekomen" name="binnen_gekomen" checked="checked" onchange='datum(filldrop.php)'
onclick="if (this.checked!=true) { document.getElementById('verstuurd').checked=true } 
else { document.getElementById('verstuurd').checked=false } " /></span> Ontvangen<br />
 
<span class="style10">
 
<input type="checkbox" id="verstuurd" name="verstuurd" 
onclick="if (this.checked!=true) { document.getElementById('binnen_gekomen').checked=true } 
else { document.getElementById('binnen_gekomen').checked=false }" /></span> Verzonden
  
<div id="drop">

<?
include ('filldrop.php');
?>
 
</div>
</FORM>

en de filldrop.php is nu:
PHP:
<?
include ('../functions/connect.php'); //verbinding maken

if (isset($_POST['binnen_gekomen']))
{
$datum = "datumIn";
$query = ("SELECT DISTINCT 
			date_format(datumIn, '%d-%m-%Y') AS datumIn
			FROM tblbriladmin
			WHERE debnr = ".$_SESSION['Klant_id']) ;// Opzoeken orders gegevens
}
else
{
$datum = "datumUit";
$query = ("SELECT DISTINCT 
			date_format(datumUit, '%d-%m-%Y') AS datumUit
			FROM tblbriladmin
			WHERE debnr = ".$_SESSION['Klant_id']) ;// Opzoeken orders gegevens
}

//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd

echo"<select name='zoekdatum' style='width: 110px'>";
while($record = mysql_fetch_object($sql))
{

echo '<option value="'.trim($record->$datum).'" >'.trim($record->$datum).'</option>';

}
echo"</select>";
?>

Waar zit mijn fout????
 
1. Het is niet onChance, maar onchange
2. het moet niet zijn onchange='dropfill.php' , maar onchange="datum('dropfill.php')"
 
Nope, blijft fout geven!!!

PHP:
<FORM style="position: absolute; width: 170px; height: 139px; z-index: 1; left: 782px; top: 0px;" 
id="layer1" class="style3" name"zoeken" target="I1" method="POST" 
action="../../loggedin/orders/order_zoekdatum.php"
style="width: 100px" class="style10">
 
<span class="style10">

<input type="checkbox" id="binnen_gekomen" name="binnen_gekomen" checked="checked" onchange="datum('filldrop.php')" 
onclick="if (this.checked!=true) { document.getElementById('verstuurd').checked=true } 
else { document.getElementById('verstuurd').checked=false } " /></span> Ontvangen<br />
 
<span class="style10">

<input type="checkbox" id="verstuurd" name="verstuurd" 
onclick="if (this.checked!=true) { document.getElementById('binnen_gekomen').checked=true } 
else { document.getElementById('binnen_gekomen').checked=false }" /></span> Verzonden
  
<div id="drop">

<?
include ('filldrop.php');
?>
 
</div>
</FORM>

In de ajax gedeelte heb ik GET om gezet naar POST, omdat ik verder met POST werk.
Code:
req.open("POST", strURL, true); //open url using get method
req.send(null);
 }
}

Bij het laden van de pagina gaat het goed, geen fouten. maar als ik een checkbox aanclick dan komt de fout op de pagina.
 
Verander POST maar weer terug naar GET.

Daarnaast is het misschien wel handig als je even aangeeft wat de fout is. Ik denk dat je helemaal geen functie hebt die getXMLHTTP heet of wel?
 
SH*T geloof dat je gelijk hebt.....krijg je als je gaat copy en plakken :confused:

Ik zal die if stat er eens uit gooien. kijken wat hij dan doet.
 
*ZUCHT* Nu dit weer!!
Code:
Notice: Undefined variable: _SESSION in F:\UsbWebserver\Root\loggedin\filldrop.php on line 18
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

En dit is de code:
PHP:
<?
//include('../check.php');

include ('../functions/connect.php'); //verbinding maken

if (isset($_POST['binnen_gekomen']))
{
$datum = "datumIn";
$query = ("SELECT DISTINCT 
			date_format(datumIn, '%d-%m-%Y') AS datumIn
			FROM tblbriladmin
			WHERE debnr = '".$_SESSION['Klant_id']."'") ;// Opzoeken orders gegevens
}
else
{
$datum = "datumUit";
$query = ("SELECT DISTINCT 
			date_format(datumUit, '%d-%m-%Y') AS datumUit
			FROM tblbriladmin
			WHERE debnr = '".$_SESSION['Klant_id']"'") ;// Opzoeken orders gegevens
}

//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd



while($record = mysql_fetch_object($sql))
{

echo '<option value="'.trim($record->$datum).'" >'.trim($record->$datum).'</option>';

}
echo"</select>";
?>
 
Blijf deze foutmelding houden
Code:
Notice: Undefined variable: _SESSION in F:\UsbWebserver\Root\loggedin\filldrop.php on line 18
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

De fout zou hier moeten zitten:
Code:
$query = ("SELECT DISTINCT 
            date_format(datumUit, '%d-%m-%Y') AS datumUit
            FROM tblbriladmin
            WHERE debnr = '[COLOR="Red"]".$_SESSION['Klant_id']"[/COLOR]'") ;//

Als ik de check.php include op de pagina, dan krijg ik de error session al geopend.

en session_start(); maakt het ook niet beter.

HAHA krijg wat van AJAX, denk dat ik maar voor Feyenoord ga!!!!
 
Doet het, moest een SESSION check doen
Code:
if (!isset($_SESSION)) {
session_start();
}
heb het nu draaien. DUS NIET!!!!

Nu, als ik de pagina open. Dan word de dropdown gevuld met de datum's In
Als ik nu Verstuurd aanvink, dan word netjes de dropdown met de datum's Uit gevuld.

MAAR! als ik nu weer Ontvangen aanvink, dan blijft de dropdown NIET gevuld met de datum's In. Maar blijft gewoon zoals hij was.

What the hell am i doing wrong!!!!!!:mad::confused:
 
Laatst bewerkt:
Ach ja, is ook logisch. Had er geen rekening mee gehouden dat je hem de eerste keer include.
 
Doet het, moest een SESSION check doen
Code:
if (!isset($_SESSION)) {
session_start();
}
heb het nu draaien. DUS NIET!!!!

Nu, als ik de pagina open. Dan word de dropdown gevuld met de datum's In
Als ik nu Verstuurd aanvink, dan word netjes de dropdown met de datum's Uit gevuld.

MAAR! als ik nu weer Ontvangen aanvink, dan blijft de dropdown NIET gevuld met de datum's In. Maar blijft gewoon zoals hij was.

What the hell am i doing wrong!!!!!!:mad::confused:

Ik begin toch stukje bij beetje mijn verstand te verliezen!!!!!
 
Ik snap niet helemaal wat je bedoelt, maar volgens mij bedoel je dat er niks gebeurd als je de checkbox aanvinkt toch?

Heb je inmiddels de function getXMLHTTP erin staan?
 
Dit is de code wat ik nu heb. Met de getXMLHTTP() functie. Deze code was orgineel bedoeld om een volgende dropdown te vullen. Zou het rode iets van een fout kunnen maken?
Code:
<? 
$_POST['binnen_gekomen'] = "true";
 ?>
<script>
function getXMLHTTP() { //fuction to return the xml http object
		var xmlhttp=false;	
		try{
			xmlhttp=new XMLHttpRequest();
		}
		catch(e)	{		
			try{			
				xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){
				try{
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				}
				catch(e1){
					xmlhttp=false;
				}
			}
		}
		 	
		return xmlhttp;
	}
function datum(strURL)
{         
 var req = getXMLHTTP(); // fuction to get xmlhttp object
 if (req)
 {
  req.onreadystatechange = function()
 {
  if (req.readyState == 4) { //data is retrieved from server
   if (req.status == 200) { // which reprents ok status                    
   [COLOR="Red"][B]  document.getElementById('drop').innerHTML=req.responseText;[/B][/COLOR]
  }
  else
  { 
     alert("There was a problem while using XMLHTTP:\n");
  }
  }            
  }        
req.open("GET", strURL, true); //open url using get method
req.send(null);
 }
}

</script>

<head>
<style type="text/css">
.style10 {
    font-size: small;
}</style>
</head>
 
<FORM style="position: absolute; width: 170px; height: 139px; z-index: 1; left: 782px; top: 0px;" 
id="layer1" class="style3" name"zoeken" target="I1" method="POST" 
action="../../loggedin/orders/order_zoekdatum.php"
style="width: 100px" class="style10">
 
<span class="style10">

<input type="checkbox" id="binnen_gekomen" name="binnen_gekomen" checked="checked" 
onchange="datum('filldrop.php')" 
onclick="if (this.checked!=true) { document.getElementById('verstuurd').checked=true } 
else { document.getElementById('verstuurd').checked=false } " /></span> Ontvangen<br />
 
<span class="style10">

<input type="checkbox" id="verstuurd" name="verstuurd" 
onchange="datum('filldrop.php')" 
onclick="if (this.checked!=true) { document.getElementById('binnen_gekomen').checked=true } 
else { document.getElementById('binnen_gekomen').checked=false }" /></span> Verzonden
  
<div id="drop">
<? 
include('filldrop.php'); 
?>
</div>
<input type="submit" name="zoeken" value="Zoeken">
</FORM>

En dit is de Filldrop.php. Maar daar zit het volgens mij niet in.

PHP:
<?php
if (!isset($_SESSION)) {
session_start();
}

include ('../functions/connect.php'); //verbinding maken

if (isset($_POST['binnen_gekomen']))
{
$datum = "datumIn";
$query = ("SELECT DISTINCT 
			date_format(datumIn, '%d-%m-%Y') AS datumIn
			FROM tblbriladmin
			WHERE debnr = ".$_SESSION['Klant_id']) ;// Opzoeken orders gegevens
}
else
{
$datum = "datumUit";
$query = ("SELECT DISTINCT 
			date_format(datumUit, '%d-%m-%Y') AS datumUit
			FROM tblbriladmin
			WHERE debnr = ".$_SESSION['Klant_id']) ;// Opzoeken orders gegevens
}
?>
<select name="zoekdatum" style="width: 110px"> 
<option value="kies_datum" >Kies Datum</option>
<?
//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd

while($record = mysql_fetch_object($sql))
{

echo '<option value="'.trim($record->$datum).'" >'.trim($record->$datum).'</option>';

}

?>
</select>
 
Laatst bewerkt:
Vreemd, ik zie niet waar de fout zit, behalve dat je eens kunt proberen om van <script>
, <script type="text/javascript"> te maken.

Zet er eens wat alerts in, zo bijvoorbeeld:

[JS]

function getXMLHTTP() { //fuction to return the xml http object
alert(2);
var xmlhttp=false;
try {
xmlhttp=new XMLHttpRequest();
} catch(e) {
try {
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e1) {
xmlhttp=false;
}
}
}

return xmlhttp;
}

function datum(strURL) {
alert(1);
var req = getXMLHTTP(); // fuction to get xmlhttp object
alert(3);
if (req) {
alert(4);
req.onreadystatechange = function() {
alert(5);
if (req.readyState == 4) { //data is retrieved from server
alert(6);
if (req.status == 200) { // which reprents ok status
alert(7);
document.getElementById('drop').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n");
}
}
}
req.open("GET", strURL, true); //open url using get method
req.send(null);
alert(8);
}
}

[/JS]

Tot welk nummer komt ie dan?
 
Hij loopt voor allebei mooi door van 1 tot 8. maar kan ik niet met de url een info mee sturen?

Het lijkt wel of de waarde van de checkboxen niet veranderen alleen de vinkjes.
mmmm misschien als ik de onchange verplaats na de onclick!

en de dropdown word pas ververst als ik de dropdown aanclick.
 
Laatst bewerkt:
Kun je het even online zetten, wat je nu net allemaal zei wordt ik niet helemaal wijs uit.
 
zou het ook kunnen komen doordat ik het test op usbserver 7 op poort 8080. Ik zal proberen om hem eens online te krijgen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan