AJAX vraagje

Status
Niet open voor verdere reacties.

nl18663

Gebruiker
Lid geworden
19 dec 2007
Berichten
156
Hallo,

ik heb een javascriptje die via PUT text (script) ophaalt van de server.
nu ben ik bezig om een gecombineerde combobox te maken.
waarde combobox1 bepaald subwaarde combobox2 en deze bepaald 3.

alleen nu heb ik het probleem dat mijn script maar een waarde verstuurd per keer:

ik heb zelf al geprobeert om een 2 variabelen aan te maken, hij bijft er maar een passen aan $_POST['naam']

HTML:
function Req(script, variabelen, HTML_div, variabelen2) {
        div=HTML_div
        //pad naar server script
        var url ='http://nagios.icte-motion.nl/verjaardag/search/' + script +'.php';
if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        try {
             req.onreadystatechange = processReqChange;
             req.open("POST", url, true);
             //Send the proper header information along with the request
             req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
             req.setRequestHeader("Connection", "close");
             req.send(variabelen, variabelen2);
            } catch (e) {
            alert(e);
            }
        } else if (window.ActiveXObject) {
                req = new ActiveXObject ("Microsoft.XMLHTTP");
                if (req) {
                          req.onreadystatechange = processReqChange;
                          req.open("POST", url, true);
                          //Send the proper header information along with the request
                          req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                          req.setRequestHeader("Connection", "close");
                          req.send(variabelen, variabelen2 );
                         }
        }
}


dit is hoe ik van box 1 naar box 2 ga:

HTML:
<?php
$naam2 = $_POST['woonplaats'];
echo $naam2;
 include("/var/www/verjaardag/dbconnection.php");
$query="SELECT adres  FROM AdresRegel WHERE woonplaats='$naam2'";
                 $result=mysql_query($query);
?>
                 <select name="adres" id="adres" onChange="Req('dropnummer','straat='+this.value,'result2','woonplaats=$naam2' )" >
                 <option value="adres" SELECTED>Adres</option>
                 <?php $count=0;
                 while ($nt=mysql_fetch_array($result)) {
                     if (in_array($nt['adres'],$wparr)){}else{
                                 $wparr[$count]=$nt['adres'];
                                 $count++;
                                 echo "<option value=$nt[adres]>$nt[adres]</option>";
                        }
                        }
                        ?>
                     </select>
[/CODE]

Box 3:

HTML:
<?php
$straat = $_POST['straat'];
#$woonplaats = $_POST['woonplaats'];
 include("/var/www/verjaardag/dbconnection.php");

echo "$woonplaats";
echo "$straat";

$query="SELECT huisnummer  FROM AdresRegel WHERE adres='$straat' AND woonplaats='$woonplaats' ";
                 $result=mysql_query($query);
?>
                 <select name="huisnummer" id="huisnummer" onChange="Req('zoeksql','nummer='+this.value,'result3')" >
                 <option value="huisnummer" SELECTED>Huisnummer</option>
                 <?php $count=0;
                 while ($nt=mysql_fetch_array($result)) {
                     if (in_array($nt['huisnummer'],$wparr)){}else{
                                 $wparr[$count]=$nt['huisnummer'];
                                 $count++;
                                 echo "<option value=$nt[huisnummer]>$nt[huisnummer]</option>";
                        }
                        }
                        ?>
                     </select>


alvast bedankt!!
 
als je een post request maakt moet je iets als dit doen:

Code:
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.send(params);

Je had geen Content-length mee gestuurd, en ik heb zelf nog nooit gezien dat send meerdere waardes neemt. Maar dit zou in ieder geval moeten werken.

params moet er als volgt uitzien: "param1=value1&param2=value2"
 
Laatst bewerkt:
die had ik er wel bij, dat heb ik verwijdert om te kijken dat ik die waarde weg kon laten... in ieder geval voor een waarde kan het... ;-)

ik het eens proberen om het aan de praat te krijgen tnx!
 
wat ik mij alleen afvraag... hoe krijg ik die waardes aan de overkant?
dan betekend het dat het er is als $_POST['params']
en dat $_POST['params'] == param1 & param2 ??
of is het
$_POST['param1']== waarde1 & $_POST['param2']== waarde2??
 
Als dit:
$_POST['param1'] == waarde1
$_POST['param2'] == waarde2

Een post request kan er zo uit zien (dit komt uit een HTTP handleiding):
Code:
	POST /login.jsp HTTP/1.1
	Host: www.mysite.com
	User-Agent: Mozilla/4.0
	Content-Length: 27
	Content-Type: application/x-www-form-urlencoded

	userid=joe&password=guessme

Onthoud wel dat alle data die je wilt versturen gecodeerd moet worden met encode() of encodeURI() of encodeURIComponent(). Ik weet niet meer waarom, maar de laatste gebruik ik altijd ;) Volgens mij had het iets te maken met spaties en plusjes.
 
het werk!!!!!!!!!!!!

dit is uiteindelijk het gene dat ik heb aangepast
HTML:
var params=variabelen+"&"+variabelen2;

SUPER nogmaals bedankt!!
 
Mooi :D

Maar niet vergeten dat je dan de Content-length header ook aan moet passen (voor het geval je daar niet even niet aan dacht ;) ).

Code:
http.setRequestHeader("Content-length", variabelen.length+1+variabelen2.length);
 
Mooi :D

Maar niet vergeten dat je dan de Content-length header ook aan moet passen (voor het geval je daar niet even niet aan dacht ;) ).

Code:
http.setRequestHeader("Content-length", variabelen.length+1+variabelen2.length);

daar had ik gelukkig nog aan gedacht, thnx voor je meedenken!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan