Re: how to call a function when somebody click a link?



thanks and kiss all
you guys help a lot....:)

i managed it by setting up a flag : msgignoreflag
when usr click the link,the href is linked to
$_server[request]&msgignoreflag
and the php script call the function only if the flag is set :)


my code is like this
with msgignoreflag being the flag and the dec_msgnum the function i
would like to call
function print_body($nomsg = 0) {

global $cookie;
?> <body bgproperties="fixed"> <?php
// if(isset($_GET["msgignoreflag"]) {
if($_GET["msgignoreflag"]==1) {
dec_msgnum($cookie["usernum"]);
}
if( $msgnum = get_msgnum($cookie["usernum"]) && !$nomsg) {

$msg = get_msg($cookie["id"], $msgnum);
?><table width=100% bgcolor=lightyellow>
<tr>
<td valign="top" nowrap="nowrap" width=25%><font
color="green"><?php echo $msg["id"]; ?></font> (<?php
echo ctime2($msg["time"]); ?>): </td>
<td align="left" valign="top" width=50%><?php echo
stripansi($msg["msg"]); ?></td>
<td align="right" valign="top" nowrap="nowrap"
width=15%>
<a href="<?php echo BBSCGI;
?>/bbssndmsg.php?reply=1&uid=<?php echo $msg["id"]; ?>">[回讯息]</a>
</td>
<td align="right" valign="top" nowrap="nowrap"
width=10%>
<a href="<?php echo $_SERVER['REQUEST_URI'];
?>&msgignoreflag=1">[忽略]</a>
</td>
</tr></table><?php
}
}

thanks all you guys again
i appriciate your efforts to help me
kisssssssssss :)
Mateusz Markowski 写道:

You are trying to do something very simple in a quite convoluted way.
You want to give user a link which goes to page that they had visited
before visiting other page. Try this:

//page that client visited before
$page = $_SERVER['HTTP_REFERER']; //let's assume that it's:
http://localhost/outpage.php

//we want user to go on this page and to add a flag which cause PHP to
call function
$newurl = $page . '?call=ourfunction';// result is:
http://localhost/outpage.php?call=outfunction

//we send a link
echo '<a href="'.$newurl.'">click here</a>';

Is this what you want to do?


yangsuli@xxxxxxxxx napisał(a):
so i missed {}
is that the problem?

the browser will recognize it as a javascript and display it only by
the script tag.......
you donot think i shoud put the script tag?

errrrr
why the header() didnot work either?

Header in your example doesn't work becuase before callling it you have
already sent some data to client. But header must be called before any
data's been sent to client's browser.

Mateusz Markowski wrote:
You should write:
echo "window.location.href={$_SERVER['PHP_SELF']}";

But it won't work in your browser. Why do you want to put script tags
as action?

yangsuli@xxxxxxxxx napisał(a):
the code is like this
<form action="<?php dec_msgnum($cookie["usernum"]); echo "<script>";
echo "window.location.href=$_SERVER['PHP_SELF']"; echo '</script>';?>">
<input type="submit" value="忽略" /></form>

i also tried
<form action="<?php dec_msgnum($cookie["usernum"]);
header(default:$_SERVER['PHP_SELF'];';?>"> <input type="submit"
value="忽略" /></form>

it didnot work either :(

but this works perfectly well
<form action="<?php dec_msgnum($cookie["usernum"]); ';?>"> <input
type="submit" value="忽略" /></form>

do you think it is caused by some arguements missing?( may be it shoule
be $_SERVER['REQUEST_URI'] or $_SERVER['PHP_SELF']?xxxx=xxxxxx or
something)
Mateusz Markowski wrote:
Paste the code that you think may give parse error.

yangsuli@xxxxxxxxx napisal(a):
but why the second way didnot work out.......
i donot get where did the parse error come from :(
55555555555

Mateusz Markowski wrote:
Yes, I think so.

yangsuli@xxxxxxxxx napisal(a):
the problem is that i donnot want some script.php
i want to redirect the users back on the page they were just on,with
calling a function in advance :)
you think the flag thing is the best way to do it?

Mateusz Markowski wrote:
yangsuli@xxxxxxxxx napisal(a):
i want to creat a link
when somebody click the link
the php script calls a function,then display itself :)

i have tried
<a href=<? funtion(); echo=$_server['php_self'] ?>text</a>
but it will call the function whether i click the link


then i tried this (using forms)
<form action="<?php function(); echo "<script>"; echo
"window.location.href=$_SERVER['PHP_SELF']"; echo '</script>';?>">
<input type="submit" value="text" /></form>
but it didnot work either.
my browser said there were parse errors,T_STRING expected or
something....:(


now i am thinking using a flag,say,$functioncall,
href=$_server[request_url]&functioncall=1
then if functioncall==1,call that function
but is it right?
is there some way simple to do that?


PHP works on a server, not in your browser, so it can't just call
function when you click a link. You have to send a request to the
server which will cause your script to call this function.. Your last
example is good way to do it. So you have such link:
script.php?call=helloworld

and in your file script.php such code:

if ($_GET['call'] == 'helloworld') {
echo 'Hello world!';
}

Then after clicking the link your browser sends a request, PHP decides
what to do, then server sends you a appropriate response.

.



Relevant Pages

  • Re: how to run scripts after a page has already loaded and been sent to a users browser?
    ... > It's because PHP is a server side scripting language, ... > do stuff before you send stuff to user's web browser. ... As we've discussed on this newsgroup before, if a script starts ... that is after the last HTML is sent to a web browser. ...
    (alt.php)
  • PHP Program Randomly Stops
    ... "You can use a combination of PHP with client side code to keep the ... are pages to be processed print a client side script, e.g. JavaScript, ... This will reload until all pages are done - then ... "You are running the script from a browser. ...
    (comp.lang.php)
  • Re: Which Is The Better Approach To Working With Javascript?
    ... Java SCRIPT runs in the browser exclusively. ... PHP can also run in a browser, ...
    (comp.lang.php)
  • Re: How do we get there from here?
    ... Unlike my dislike for PHP, my dislike for SQL is based on ... >>> up with at least html and php quite mixed into each other, ... Using a PHP script to send HTML ... code to a browser in no way taints that code. ...
    (comp.databases.pick)
  • Re: [PHP] PHP console script vs C/C++/C#
    ... My script is taking a longer time to execute than I want. ... I prefer to write in PHP because that is what I know best. ... This is why I am thinking about rewriting my whole script in a C language. ... Perhaps there are different methods I could be using to speed up execution. ...
    (php.general)