setCharEncoding($sEncoding); } // setCharEncoding() sets the character encoding for the response based on // $sEncoding, which is a string containing the character encoding to use. You // don't need to use this method normally, since the character encoding for the // response gets set automatically based on the XAJAX_DEFAULT_CHAR_ENCODING // constant. function setCharEncoding($sEncoding) { $this->sEncoding = $sEncoding; } // addAssign() adds an assign command message to the XML response // $sTarget is a string containing the id of an HTML element // $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.) // $sData is the data you want to set the attribute to // usage: $objResponse->addAssign("contentDiv", "innerHTML", "Some Text"); function addAssign($sTarget,$sAttribute,$sData) { $this->xml .= $this->_cmdXML(array("n"=>"as","t"=>$sTarget,"p"=>$sAttribute),$sData); } // addAppend() adds an append command message to the XML response // $sTarget is a string containing the id of an HTML element // $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.) // $sData is the data you want to append to the end of the attribute // usage: $objResponse->addAppend("contentDiv", "innerHTML", "Some New Text"); function addAppend($sTarget,$sAttribute,$sData) { $this->xml .= $this->_cmdXML(array("n"=>"ap","t"=>$sTarget,"p"=>$sAttribute),$sData); } // addPrepend() adds an prepend command message to the XML response // $sTarget is a string containing the id of an HTML element // $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.) // $sData is the data you want to prepend to the beginning of the attribute // usage: $objResponse->addPrepend("contentDiv", "innerHTML", "Some Starting Text"); function addPrepend($sTarget,$sAttribute,$sData) { $this->xml .= $this->_cmdXML(array("n"=>"pp","t"=>$sTarget,"p"=>$sAttribute),$sData); } // addReplace() adds an replace command message to the XML response // $sTarget is a string containing the id of an HTML element // $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.) // $sSearch is a string to search for // $sData is a string to replace the search string when found in the attribute // usage: $objResponse->addReplace("contentDiv", "innerHTML", "text", "text"); function addReplace($sTarget,$sAttribute,$sSearch,$sData) { $sDta = ""; $this->xml .= $this->_cmdXML(array("n"=>"rp","t"=>$sTarget,"p"=>$sAttribute),$sDta); } // addClear() adds an clear command message to the XML response // $sTarget is a string containing the id of an HTML element // $sAttribute is the part of the element you wish to clear ("innerHTML", "value", etc.) // usage: $objResponse->addClear("contentDiv", "innerHTML"); function addClear($sTarget,$sAttribute) { $this->addAssign($sTarget,$sAttribute,''); } // addAlert() adds an alert command message to the XML response // $sMsg is the text to be displayed in the Javascript alert box // usage: $objResponse->addAlert("This is important information"); function addAlert($sMsg) { $this->xml .= $this->_cmdXML(array("n"=>"al"),$sMsg); } // addRedirect() uses the addScript() method to add a Javascript redirect to // another URL // $sURL is the URL to redirect the client browser to // usage: $objResponse->addRedirect("http://www.xajaxproject.org"); function addRedirect($sURL) { $this->addScript('window.location = "'.rawurlencode($sURL).'";'); } // addScript() adds a Javascript command message to the XML response // $sJS is a string containing Javascript code to be executed // usage: $objResponse->addScript("var x = prompt('get some text');"); function addScript($sJS) { $this->xml .= $this->_cmdXML(array("n"=>"js"),$sJS); } // addRemove() adds a remove element command message to the XML response // $sTarget is a string containing the id of an HTML element to be removed // from your page // usage: $objResponse->addRemove("Div2"); function addRemove($sTarget) { $this->xml .= $this->_cmdXML(array("n"=>"rm","t"=>$sTarget),''); } // addCreate() adds a create element command message to the XML response // $sParent is a string containing the id of an HTML element to which the new // element will be appended. // $sTag is the tag to be added // $sId is the id to be assigned to the new element // $sType has been deprecated, use the addCreateInput() method instead // usage: $objResponse->addCreate("parentDiv", "h3", "myid"); function addCreate($sParent, $sTag, $sId, $sType="") { if ($sType) { trigger_error("The \$sType parameter of addCreate has been deprecated. Use the addCreateInput() method instead.", E_USER_WARNING); return; } $this->xml .= $this->_cmdXML(array("n"=>"ce","t"=>$sParent,"p"=>$sId),$sTag); } // addInsert() adds an insert element command message to the XML response // $sBefore is a string containing the id of the child before which the new element // will be inserted // $sTag is the tag to be added // $sId is the id to be assigned to the new element // usage: $objResponse->addInsert("childDiv", "h3", "myid"); function addInsert($sBefore, $sTag, $sId) { $this->xml .= $this->_cmdXML(array("n"=>"ie","t"=>$sBefore,"p"=>$sId),$sTag); } // addCreateInput() adds a create input command message to the XML response // $sParent is a string containing the id of an HTML element to which the new // input will be appended // $sType is the type of input to be created (text, radio, checkbox, etc.) // $sName is the name to be assigned to the new input and the variable name when it is submitted // $sId is the id to be assigned to the new input // usage: $objResponse->addCreateInput("form1", "text", "username", "input1"); function addCreateInput($sParent, $sType, $sName, $sId) { $this->xml .= $this->_cmdXML(array("n"=>"ci","t"=>$sParent,"p"=>$sId,"c"=>$sType),$sName); } // addInsertInput() adds an insert input command message to the XML response // $sBefore is a string containing the id of the child before which the new element // will be inserted // $sType is the type of input to be created (text, radio, checkbox, etc.) // $sName is the name to be assigned to the new input and the variable name when it is submitted // $sId is the id to be assigned to the new input // usage: $objResponse->addInsertInput("input5", "text", "username", "input1"); function addInsertInput($sBefore, $sType, $sName, $sId) { $this->xml .= $this->_cmdXML(array("n"=>"ii","t"=>$sBefore,"p"=>$sId,"c"=>$sType),$sName); } // addEvent() adds an event command message to the XML response // $sTarget is a string containing the id of an HTML element // $sEvent is the event you wish to set ("click", "mouseover", etc.) // $sScript is the Javascript string you want to the event to invoke // usage: $objResponse->addEvent("contentDiv", "click", "alert(\'Hello World\');"); function addEvent($sTarget,$sEvent,$sScript) { $this->xml .= $this->_cmdXML(array("n"=>"ev","t"=>$sTarget,"p"=>$sEvent),$sScript); } // addHandler() adds a handler command message to the XML response // $sTarget is a string containing the id of an HTML element // $sEvent is the event you wish to set ("click", "mouseover", etc.) // $sHandler is a string containing the name of a Javascript function // that will handle the event. Multiple handlers can be added for the same event // usage: $objResponse->addHandler("contentDiv", "click", "content_click"); function addHandler($sTarget,$sEvent,$sHandler) { $this->xml .= $this->_cmdXML(array("n"=>"ah","t"=>$sTarget,"p"=>$sEvent),$sHandler); } // addRemoveHandler() adds a remove handler command message to the XML response // $sTarget is a string containing the id of an HTML element // $sEvent is the event you wish to remove ("click", "mouseover", etc.) // $sHandler is a string containing the name of a Javascript handler function // that you want to remove // usage: $objResponse->addRemoveHandler("contentDiv", "click", "content_click"); function addRemoveHandler($sTarget,$sEvent,$sHandler) { $this->xml .= $this->_cmdXML(array("n"=>"rh","t"=>$sTarget,"p"=>$sEvent),$sHandler); } // addIncludeScript() adds an include script command message to the XML response // $sFileName is a URL of the Javascript file to include // usage: $objResponse->addIncludeScript("functions.js"); function addIncludeScript($sFileName) { $this->xml .= $this->_cmdXML(array("n"=>"in"),$sFileName); } // getXML() returns the XML to be returned from your function to the xajax // processor on your page. Since xajax 0.2, you can also return an xajaxResponse // object from your function directly, and xajax will automatically request the // XML using this method call. // usage: return $objResponse->getXML(); function getXML() { $sXML = "sEncoding && strlen(trim($this->sEncoding)) > 0) $sXML .= " encoding=\"".$this->sEncoding."\""; $sXML .= " ?".">" . $this->xml . ""; return $sXML; } // loadXML() adds the commands of the provided response XML output to this // response object // $sXML is the response XML (returned from a getXML() method) to add to the // end of this response object // usage: $r1 = $objResponse1->getXML(); // $objResponse2->loadXML($r1); // return $objResponse2->getXML(); function loadXML($sXML) { $sNewXML = ""; $iStartPos = strpos($sXML, "") + 5; $sNewXML = substr($sXML, $iStartPos); $iEndPos = strpos($sNewXML, ""); $sNewXML = substr($sNewXML, 0, $iEndPos); $this->xml .= $sNewXML; } // private method, used internally function _cmdXML($aAttributes, $sData) { $xml = " $sValue) $xml .= " $sAttribute=\"$sValue\""; if ($sData && !stristr($sData,'"; else if ($sData) $xml .= ">$sData"; else $xml .= ">"; return $xml; } }// end class xajaxResponse ?>