Link to home
Start Free TrialLog in
Avatar of orik7
orik7

asked on

calling a PHP function throu JS's - 'onClick' ?

hello.
would like to ask if it is posibale to call a PHP function throu JS's 'onClick'.
I've tryied soemthing like that:
onClick="<? roll(); ?>;"     which i don't think is working..
would be happy to hear comments.
thanx. ori.
Avatar of StormyWaters
StormyWaters
Flag of United States of America image

PHP is serverside; everything is parsed before the user ever sees the document. Javascript, on the other hand, is interpretted by the browser. The two languages are unrelated, so it's not possible to call a PHP function through a clientside feature. Some PHP functions can be implemented by javascript. What is it that you intend to accomplish?
Avatar of orik7
orik7

ASKER

something like that:
--------------
<html>
<title></title>
<?php
function roll(){
$link1="</td></tr><tr><td>sub1</td></tr><tr><td>sub2";
}
?>
</head>
<body>
<table width="130" border="1">
<tr>
<td onClick="<? roll(); ?>;">
link1
<? echo $link1; ?>
</td>
</tr>
</table>
</body>
</html>
------------------------------------
thanx.
No, this is not the best approach. You can use <div></div> and use Javascript to add data to DIV layer on click, by using  divid.InnerHTML
Avatar of orik7

ASKER

i am right now using divs on www.oris.ws over the menu at the left side. i heard it not working on some browsers so thought to an alternate..
ASKER CERTIFIED SOLUTION
Avatar of C7Swill
C7Swill

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of orik7

ASKER

Sean, thanx alot for the efforts. but will this code work on browsers like 'mozila' 'NS' and others?
ori.
Avatar of orik7

ASKER

Sean, i'm asking because as i said i have something that is working but there's the browsers issus that are not solved- so if i'm replacing it it's better to have a good start (to have a code that will be more fitbale to other browser than IE).
thanx. ori.
Avatar of orik7

ASKER

and increasing points a bit..
Hey Orik, this will work on mac on ie, safari, mozilla firefox...
and pc: ie, mozilla firefox, netscape all latest versions.

That's all I currently have on my system but the only thing limiting cross-browser would be the javascript function
showHideRow.

 if (document.all){
and
  } else if (document.getElementById){

check for two different document object types so logically you could add as many as you want.

function showHideRow(el, showhide) {
// add opera compat
   if (navigator.userAgent.indexOf("Opera") != -1) { //Opera
     whichRow = eval('document.all.' + el);
       if(showhide == "show" ) {
          whichRow.style.display = "table-row";
       } else {
          whichRow.style.display = "none";
       }
   }  else if (document.all){
       var whichRow = document.all[el];
       if(showhide == "show" ) {
          whichRow.style.display = "";
            } else {
          whichRow.style.display = "none";
              }
  } else if (document.getElementById){
       var whichRow = document.getElementById(el);
       if(showhide == "show" ) {
          whichRow.style.display = "table-row";
       } else {
          whichRow.style.display = "none";
       }
  }
}

This function adds in opera capability.

--Sean
You can't do what you need with PHP, the concept is wrong in itself. If browser doesn't support DOM, then you can't do it. Mozilla supports DOM, old versions don't, Netscape/Mozilla started supporting it much later than IE.
Could you explain better what you need this code to do? so far, I see Sean's solution as the best and I dont think you'll find a lot of browsers that dont support the mentioned solution. I am pretty sure the vast majority of people that visit your site use either MSIE or the latest Mozilla.

Also, i think you need to understand a bit more of PHP and JS. Like it has been mentioned before, PHP works serverside and JS works clientside, which means that PHP functions work while the document is still being procesed at the web server and JS is processed when the document reaches the browser at the client machine which means you CANT do the onClick call of a PHP function UNLESS you actually referred to another URL.

All is not lost, though. You CAN do some things like submiting to a PHP document using java or you can also navigate to such document using a popup window (if you wish your main window to stay on the same document).

Just a couple of suggestions.. elaborating on your question would help us come up with a solution too.

Hope this helps.