jaxon-php / jaxon-core

The Jaxon core library
https://www.jaxon-php.org
BSD 3-Clause "New" or "Revised" License
65 stars 28 forks source link

What function replaces loadCommands in jaxon? #44

Closed dquinones closed 5 years ago

dquinones commented 5 years ago

Hi Please help, i dont know how should i run a function like i do in xajax with $obj->loadCommands (fun ());

Regards

feuzeu commented 5 years ago

Hi, What is this function supposed to do? Where is it implemented? I was not able to find it in the https://github.com/Xajax/Xajax/ repo.

dquinones commented 5 years ago

Thanks for your reply It is located at xajaxResponse.inc.php Its definition is

Function: loadCommands Merges the response commands from the specified object with the response commands in this object.

mCommands - (object): object. bBefore - (boolean): Add the new commands to the beginning of the list.

function loadCommands($mCommands, $bBefore=false){
    if (is_a($mCommands, "xajaxResponse")) {
        $this->returnValue = $mCommands->returnValue;

        if ($bBefore) {
            $this->aCommands = array_merge($mCommands->aCommands, $this->aCommands);
        }
        else {
            $this->aCommands = array_merge($this->aCommands, $mCommands->aCommands);
        }
    }
    else if (is_array($mCommands)) {
            if ($bBefore) {
                $this->aCommands = array_merge($mCommands, $this->aCommands);
            }
            else {
                $this->aCommands = array_merge($this->aCommands, $mCommands);
            }
        }
        else {
            //SkipDebug
            if (!empty($mCommands)) {
                $objLanguageManager =& xajaxLanguageManager::getInstance();
                trigger_error(
                        $objLanguageManager->getText('XJXRSP:LCERR:01')
                        , E_USER_ERROR
                        );
            }
            //EndSkipDebug
        }
    }
dquinones commented 5 years ago

Here an example

<?php
/*
    File: xajaxResponseTest.php

    Script to test various aspects of the <xajaxResponse> object.

    Title: Test the <xajaxResponse> object.

    Please see <copyright.inc.php> for a detailed description, copyright
    and license information.
*/

/*
    @package xajax
    @version $Id: xajaxResponseTest.php 362 2007-05-29 15:32:24Z calltoconstruct $
    @copyright Copyright (c) 2005-2006 by Jared White & J. Max Wilson
    @license http://www.xajaxproject.org/bsd_license.txt BSD License
*/
    require_once("../xajax_core/xajax.inc.php");

    function showOutput()
    {
        $testResponse = new xajaxResponse();
        $testResponse->alert("Hello");

        $testResponse2 = new xajaxResponse();
        $testResponse2->loadCommands($testResponse);
        $testResponse2->replace("this", "is", "a", "replacement]]>");
        $testResponseOutput = htmlspecialchars($testResponse2->getOutput());    

        $objResponse = new xajaxResponse();
        $objResponse->assign("submittedDiv", "innerHTML", $testResponseOutput);
        $aValues = array();
        $aValues[] = "Yippie";
        $objResponse->setReturnValue($aValues);
        return $objResponse;
    }
    $xajax = new xajax();
    $xajax->setFlag("debug", true);
    $xajax->registerFunction("showOutput");
    $xajax->processRequest();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>xajaxResponse Test | xajax Tests</title>
    <?php $xajax->printJavascript("../") ?>
</head>
<body>

    <h2><a href="index.php">xajax Tests</a></h2>
    <h1>xajaxResponse Test</h1>

    <form id="testForm1" onsubmit="return false;">
    <p><input type="submit" value="Show Response XML" onclick="alert(xajax.call('showOutput', {mode:'synchronous'})); return false;" /></p>
    </form>

    <div id="submittedDiv"></div>

</body>
</html>
feuzeu commented 5 years ago

Hi, This function was renamed to appendResponse.

dquinones commented 5 years ago

Thank you so much, working