Solved

New to xajax/javascript = problem

Posted on 2009-07-11
10
422 Views
Last Modified: 2013-11-11
Hello!

I'm trying to put a javascript variable into a PHP variable using xajax. But I can´t get it to work.

Error msg:

Fatal error: Class 'xajaxResponse' not found in /home/web9905/domains/domain.com/public_html/xajax/multiply.php on line 23

What am I doing wrong?
<?php

require("xajax/xajax_core/xajax.inc.php");

echo '<?xml version="1.0" encoding="UTF-8"?>'
 

?>

<!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></title>

        <script language="javascript">

            var testVar = 5;

        </script>
 
 

    </head>

    <body>
 

        <?

        MyPHPFunction(testVar);
 

        function MyPHPFunction($jsVar) {

            $variable = strtoupper($jsVar);

            $objResponse = new xajaxResponse();

            $objResponse->script("PHPvar = '$variable';");

            return $objResponse;

		}

        ?>
 

        <div id="someID"><p></p></div>

    </body>

</html>

Open in new window

0
Comment
Question by:AphX
  • 5
  • 5
10 Comments
 
LVL 39

Expert Comment

by:Roger Baklund
Comment Utility
You need to initialize xajax. Put this after you include xajax on line 2:

$xajax = new xajax();
$xajax->registerFunction("MyPHPFunction");
$xajax->processRequest();

Within HTML HEAD you need this:

<?php $xajax->printJavascript(); ?>

This sets up the xajax javascript helper functions.
0
 
LVL 2

Author Comment

by:AphX
Comment Utility
Hi again and thank you! :)

Now I get this pop-up error msg:

Error: the xajax Javascript component could not be included. Perhaps the URL is incorrect? URL: xajax_js/xajax_core.js

I dont know why =(

the require path at line 2 is correct... one of the xajax example's worked so there is no file missing in the framework.
<?php

require("xajax/xajax_core/xajax.inc.php");

$xajax = new xajax();

$xajax->registerFunction("MyPHPFunction");

$xajax->processRequest();

echo '<?xml version="1.0" encoding="UTF-8"?>'
 

?>

<!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></title>

        <script language="javascript">

            var testVar = 5;

        </script>

        

        <?php $xajax->printJavascript(); ?>

    </head>

    <body>

        

        <?

        MyPHPFunction(testVar);

        

        function MyPHPFunction($jsVar) {

            $variable = strtoupper($jsVar);

            $objResponse = new xajaxResponse();

            $objResponse->script("PHPvar = '$variable';");

            return $objResponse;

        }

        ?>

        

        <div id="someID"><p></p></div>

    </body>

</html>

Open in new window

0
 
LVL 2

Author Comment

by:AphX
Comment Utility
If I remove line 17, the msg doesn't show up...
0
 
LVL 39

Expert Comment

by:Roger Baklund
Comment Utility
Line 17 must be there.

Because xajax is not stored directly in the folder where your script is located, you need to configure the path. Try this:

$xajax = new xajax();
$xajax->configure('javascript URI','xajax/');
$xajax->registerFunction("MyPHPFunction");
$xajax->processRequest();

 
0
 
LVL 39

Expert Comment

by:Roger Baklund
Comment Utility
Your line 22 is wrong... you are calling the PHP function from PHP.

Put this in the HTML instead:

<button onclick="xajax_MyPHPFunction('Hello world!');">Test</button>
<button onclick="alert(PHPvar);">Show result</button>

Also, line 21 should be "<?php", not just "<?". It might work on your server, but some servers does not accept the short start tag.
0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 
LVL 2

Author Comment

by:AphX
Comment Utility
Thanks a lot! All of that worked like a charm!

Last thing...

I have a lot of PHP code, how do I actually put the testVar variable to a PHP variable?

Sorry for being a noob!

Your help really means a lot to me!
<?php

require("xajax/xajax_core/xajax.inc.php");

$xajax = new xajax();

$xajax->configure('javascript URI','xajax/');

$xajax->registerFunction("MyPHPFunction");

$xajax->processRequest();

echo '<?xml version="1.0" encoding="UTF-8"?>'
 

?>

<!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></title>

        <script language="javascript">

            var testVar = 5;

        </script>

        

        <?php $xajax->printJavascript(); ?>

        

        <script language="javascript">

		var test = 5;

        </script>
 

    </head>

    <body>

        

        <?php

        

        function MyPHPFunction($jsVar) {

            $variable = strtoupper($jsVar);

            $objResponse = new xajaxResponse();

            $objResponse->script("PHPvar = '$variable';");

            return $objResponse;

        }

        ?>

        <button onclick="xajax_MyPHPFunction('testVar');">Test</button>

		<button onclick="alert(PHPvar);">Show result</button>

        <div id="someID">

        	<?php

				$varFromJs = "?";

			?>

        </div>

    </body>

</html>

Open in new window

0
 
LVL 39

Expert Comment

by:Roger Baklund
Comment Utility
Just remove the quotes:

<button onclick="xajax_MyPHPFunction(testVar);">Test</button>

...but now the strtoupper() PHP function does not make much sense... for testing, change it like this:

$variable = $jsVar * 2;

...and remove the quotes in the PHP response, because it is now an integer, not a string:

$objResponse->script("PHPvar = $variable;");
0
 
LVL 39

Accepted Solution

by:
Roger Baklund earned 500 total points
Comment Utility
To write to the someID div, add this to the response object:

            $objResponse->assign('someID','innerHTML',"Result: $variable");
0
 
LVL 2

Author Comment

by:AphX
Comment Utility
I know these are strong words... But. I LOVE YOU!!! <3

You just helped me complete a 1-month project.

I really need to practice JavaScript :)

Thank you thank you thank you!

You're my god!
0
 
LVL 2

Author Closing Comment

by:AphX
Comment Utility
!!! You're really a Genius
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

The task A number given should be formatted for easy reading by separating digits into triads. Format must be made inline via JavaScript, i.e., frameworks / functions are not welcome. So let’s take a number like this “12345678.91¿ and format i…
Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now