Функция не вызывается через JavaScript в href

0

Я использовал код, который я нашел в Интернете, а затем изменил мелочь:

<script type="text/javascript">
    var foodList = [];

    function addToFood (addFood) {
        alert(addFood);
        //foodList.push(addFood);
        //for (i = 0; i < foodList.length; i++) {
        //    var newFood = "<a href='#' onClick='removeRecord(" + i + ");'>X</a> " + foodList[i] + " <br>";
        //};
        //document.getElementById('foods').innerHTML += newFood;
    }
</script>

В этот момент я хочу только предупредить параметр addToFood. Функция должна быть вызвана:

echo "<a href='javascript:addToFood(". $zeile1['TITLE'] .");' class='band-head'>Add</a>";

эта строка показывает, как я добавляю <a> с javascript в href. Php отображает правильную строку, но addToFood никогда не вызывается.

Взгляните на онлайн-демонстрацию: http://anthraxx.sytes.net/, возможно, она может помочь вам больше, чем мне. Ошибка, которую я получаю через Google Chrome: Uncaught SyntaxError: Unexpected identifier Но просто невозможно определить этот неожиданный идентификатор.

благодаря

  • 0
    У вас ошибка JavaScript. Посмотрите на JavaScript, не смотрите на PHP, который генерирует JavaScript. Выясните, в чем проблема и что нужно изменить в JS, чтобы исправить ее, а затем посмотрите на PHP.
  • 0
    echo '<a href = "javascript: addToFood ('. $ zeile1 ['TITLE']. ');" класс = "ленточно-голова"> Добавить </a> '; замещать
Теги:
onclick

5 ответов

4
Лучший ответ

Вам нужно обернуть $zeile1['TITLE'] внутри строки:

echo "<a href='javascript:addToFood(\"". $zeile1['TITLE'] ."\");' class='band-head'>Add</a>";

Вы можете увидеть, что я добавил сбежавших кавычки \" после открывающей скобки и перед окончанием одного, в JS-вызова. В противном случае он будет пытаться передать переменную в функцию, вместо строки.

Зачем бежать? Это потому, что вы эхо: это с PHP. Если бы я не избежал цитаты, PHP интерпретировал бы ее, поскольку я заканчивал строку, чего мы не хотим. Я хочу поставить цитаты там как встроенный код.

  • 0
    о черт возьми - спасибо, что это была проблема;)
1

попробуй это

    echo '<a href="javascript:addToFood(\''.$zeile1['TITLE'].'\');" class="band-head">Add</a>';
1

Просто укажите свой vaiable между ' ' или " " Когда вы не используете область String, javascript читает ее как Var.

1

Вам нужно избежать $ zeile1 ['TITLE'], это правда, и вы можете сделать это, используя следующую строку -

    echo "<a href='javascript:addToFood(\"". $zeile1['TITLE'] ."\");' class='band-head'>Add</a>";

Это работает.

1

Заменить:

echo "<a href='javascript:addToFood(". $zeile1['TITLE'] .");' class='band-head'>Add</a>";

С:

echo "<a href='javascript:addToFood(\"". $zeile1['TITLE'] ."\");' class='band-head'>Add</a>";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню