Что не так с моей ссылкой, сгенерированной из PHP? - PullRequest
0 голосов
/ 06 апреля 2009

В моем коде я просто ссылаюсь на якорный тег для функции PHP при нажатии.

Мой код ниже. Файл another.php вызывается Ajax , index.php из jQuery.

another.php

<?php    
    echo " <a href='my.php?action=show&amp;id=".$fid."'
        onclick=\"return  display('".$fid."');\"> ";  
    echo "" .$fname."</a> ";
?>

Гиперссылка не работает, когда я нажимаю на нее.

У меня проблемы с ведущими пробелами? Нужно ли менять свой код?

Ответы [ 5 ]

4 голосов
/ 06 апреля 2009

Если функция «display» возвращает false, ваш обработчик onclick коротко замыкает функцию гиперссылки по умолчанию. Вместо того, чтобы onclick был установлен на «return display ($ fid)», просто установите onclick = «display ($ fid)», и гиперссылка будет работать всегда.

Не видя остальной части вашего кода или более подробного описания, я не могу точно сказать, в чем еще может быть проблема. Но это первое, что бросается в глаза. Если обработчик события элемента возвращает false, обычная функциональность никогда не возникает.

0 голосов
/ 06 апреля 2009

Как уже упоминали другие, это, вероятно, что-то с возвратом JavaScript. Поскольку я не могу сказать что-то не так с самим PHP-кодом, который мог бы вызвать проблему.

Однако у меня есть несколько советов, которые сделают ваш код немного проще для глаз.

Мое первое предложение, касающееся работы со строками, - никогда не заставлять себя убегать "или". Переключая стиль цитирования, вы можете существенно упростить чтение кода и намного легче находить проблемы, вызванные кавычками.

echo " <a href='my.php?action=show&amp;id=".$fid."' onclick=\"return display('".$fid."');\"/> ";

Это станет:

echo ' <a href="my.php?action=show&amp;id='.$fid.'" onclick="return display("'.$fid.'");"> '.$link_title.'</a>;

На самом деле, печатая это, я заметил, что вы не получаете гиперссылку, потому что вы не заполняете тег привязки. В частности, вы заканчиваете его раньше с помощью / В приведенном выше примере я добавил:

.$link_title.'</a> Это должно решить проблему.

Второе предложение:

echo "" .$fname."</a> "; Можно так же легко набрать как:

echo $fname.'</a> ';

Рекомендуется использовать «вместо» для строк, которые не требуют дополнительной работы со стороны сервера, а ведущий «» не требуется.

EDIT:

echo ' <a href="my.php?action=show&amp;id='.$fid.'" onclick="return display("'.$fid.'");"> '.$fname.'</a>;

Это работает? Отображается ли ссылка?

0 голосов
/ 06 апреля 2009

Я не могу понять, чего вы хотите достичь с помощью всего этого в одном теге привязки ... реагировать на событие onclick и перенаправлять браузер в другое место? Я узнал, что простой способ настройки тега <a>:

<a href="javascript:doStuffHere()" id="...">...</a>

То есть вы не смешиваете onclick с обязательным href. Попробуйте восстановить ссылку, чтобы она была примерно такой.

Что касается вашего стиля PHP, когда вы используете двойные кавычки для разделения строк, вам не нужно вырываться из кавычек, чтобы вставить переменное содержимое. Вы могли бы написать:

<?php

$fid = 'myId';
$fname = 'my link name';

echo "<a id=\"$fid\" href=\"javascript:doStuff()\">$fname</a>";

?>
0 голосов
/ 06 апреля 2009
<?php
   echo '<a href="my.php?action=show&id='.$fid.'"
     onclick="return  display(\''.$fid.'\');">'.$fname.'</a>';
 ?>

Это должно работать, я всегда использую 'для строк php и' в части HTML, что делает его намного проще для чтения:)

Также большая ошибка заключалась в том, что ваша ссылка выглядела следующим образом: Bla, потому что вы сделали само закрытие, вероятно, она показывала ссылку без значения

0 голосов
/ 06 апреля 2009

Почему твой второй echo "" .$fname."</a> "; ??? Первое "" не должно быть там вообще

Более того, похоже, что пробел не должен быть перед точкой -.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...