HREF Call в JavaScript - PullRequest
       2

HREF Call в JavaScript

0 голосов
/ 22 марта 2012

У меня проблема с использованием, во время клика по ссылке мне нужно обновить поле в базе данных и перенаправить на другую страницу после.

У меня есть этот код:

<a href="#" onclick="<?php  

                        $sql="UPDATE MyDB.mytable SET Date = '".date("Y-m-d H:i:s")."' 
                                WHERE ID='" . $id . "'";
                        if (!mysql_query($sql)) ///Cannot query
                        {
                            $logger->error(mysql_error()); 
                        }

                        if ($sql)
                        {
                             $logger->debug('OK');
                        }
                        else
                        {
                             $logger->debug( 'NOt OK');
                        }
                      ?>"> </a>

После того, как конечный тег php '?>' Я могу добавить свой путь к которому?как:

<a href="#" onclick="<?php  

                        $sql="UPDATE MyDB.mytable SET Date = '".date("Y-m-d H:i:s")."' 
                                WHERE ID='" . $id . "'";
                        if (!mysql_query($sql)) ///Cannot query
                        {
                            $logger->error(mysql_error()); 
                        }

                        if ($sql)
                        {
                             $logger->debug('OK');
                        }
                        else
                        {
                             $logger->debug( 'NOt OK');
                        }
                      ?> ../index.php"></a>

Это вообще возможно?Как правильно это сделать?Большое спасибо!

Ответы [ 3 ]

1 голос
/ 22 марта 2012

это не правильный путь.

Существует несколько способов сделать это. Но я бы посоветовал вам разместить код обновления БД на целевой странице (которую, я полагаю, вы упомянули как index.php). Если вы хотите активировать код обновления БД только при нажатии на ссылку, используйте страницу посередине, чтобы перенаправить поток.

Итак, ваш поток страниц будет:

Текущая страница (ссылка нажата, просто ссылка на middleman.php) ==> middleman.php (просто запустите здесь код обновления БД и используйте синтаксис заголовка Location для index.php) ==> index.php

код:

страница, на которой у вас есть ссылка source.php

<.... html contents ....>
<a href='middleman.php'>Visit the page</a>
<.... more html contents ....>

middleman.php

<?php  

$sql="UPDATE MyDB.mytable SET Date = '".date("Y-m-d H:i:s")."' WHERE ID='" . $id . "'";
if (!mysql_query($sql)) ///Cannot query
{
   $logger->error(mysql_error()); 
}

if ($sql)
{
 $logger->debug('OK');
}
else
{
 $logger->debug( 'NOt OK');
}

header("Location: index.php"); //redirects to index.php
?>

index.php

do whatever you want
0 голосов
/ 22 марта 2012

Когда страница отображается, PHP-код будет запускаться один раз .Всякий раз, когда вы видите веб-страницу, это только HTML, всегда без прямого доступа к php-коду.Таким образом, вы не можете выполнять блоки php напрямую, например, из события javascript.В вашем случае SQL-запрос будет выполнен один раз, когда вы загрузите страницу.

kishu27 только что опубликовал один из подходящих способов сделать это, и лучший вариант для вас в этом случае.Если вы хотите обновить только базу данных, без перенаправления на другую страницу, хорошим вариантом будет ajax-вызов php-страницы с кодом базы данных.

0 голосов
/ 22 марта 2012

Использование location.pathname

<a href="#" onclick="location.pathname='<?php ... ?>'"></a>
...