Hallo

Ik heb een js functie gemaakt, om ajax posts te vereenvoudigen (voor mezelf dan toch). Het probleem is nu echter dat ik veel te weinig aanhalingstekens heb :s

Ik heb er nodig voor html => "
voor parameters in mijn functie => '
en dan zou ik in deze parameter nog eens aanhalingstekens moeten gebruiken.
Dus dit gaat waarschijnlijk niet gaan :s

Dit is een test voorbeeld:

<input type="submit" value="<?php echo $_submitText; ?>" name="submit" onclick="postAjaxAction('content','applications/login.php','submit=encodeURI(document.getElementById('username').value)');" />


dus bij 'username' moet ik opnieuw aanhalingstekens gebruiken, maar als ik ' gebruik dan ga ik uit mijn parameter en als ik " gebruik, dan krijg ik natuurlijk problemen met html :s

weet iemand hiervoor een oplossing?

mvg kasper
Geeft het ook foutmeldingen?
Ik ben niet zo goed met JavaScript, maar kun je het niet gewoon escapen?
Een backslash voor een quote zetten.


<input type="submit" value="<?php echo $_submitText; ?>" name="submit" onclick="postAjaxAction('content','applications/login.php','submit=encodeURI(document.getElementById(\'username\').value)');" />
Probeer dit eens


<input type="submit" value="<?php echo $_submitText; ?>" name="submit" onclick="postAjaxAction('content','applications/login.php','submit=encodeURI(document.getElementById(\'username\').value)');" />


Zoals je ziet heb ik om username heen ' vervangen door \'
Deze worden dan genegeerd als postAjaxAction wordt uitgevoerd

Maar, ik weet niet precies wat postAjaxAction doet, dus dit zou ook kunnen helpen:

<input type="submit" value="<?php echo $_submitText; ?>" name="submit" onclick="postAjaxAction('content','applications/login.php','submit=encodeURI('+document.getElementById('username').value+')');" />
zo ziet de functie er uit:

function postAjaxAction(_layerId, _url, _parameters){
	layerId = _layerId;
	
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}
	xmlhttp.onreadystatechange=stateChanged;
	xmlhttp.open("POST",_url,true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-length", _parameters.length);
    xmlhttp.setRequestHeader("Connection", "close");
	xmlhttp.send(_parameters);
}



en geen enkel van de gegeven oplossingen werken hierbij รถ

weet iemand iets? :D

mvg kasper
Dit zou het moeten doen:


<input type="submit" value="<?php echo $_submitText; ?>" name="submit" onClick="javascript:postAjaxAction('content', './applications/login.php', 'submit='+encodeURI(document.getElementById('username').value));" />


Er zijn een paar verschillen met de jouwe (ik gebruikb bijv. javascript: bij onClick)
Want ik heb hem zelf overgeschreven

Reageren