Jquery отправляет данные в параметре функции

0

У меня есть эта проблема с моим кодом jquery:

<?php

//I oppen a text document, read the text inside of it and write it inside my html page.
//When someone clicks on a line, I want to take that very same line and send it via  select(String) function. 
$handle = fopen($_POST['lien'], 'r');

if ($handle)
{       
    while (!feof($handle))
    {       
          $buffer = fgets($handle);     
          echo "<div onclick='select(\" ".$buffer." \");'>".$buffer."</div><br/>";
             //It works when I put a simple string within the select param: 
             //echo "<div onclick='select(\" text \");'>".$buffer."</div><br/>";
    }
    fclose($handle);
}
?>

Код jquery:

function select(text){
        alert(text);
        //$("#selected").html();
    }

где вы, ребята, думаете, проблема?

Благодаря :)

  • 1
    где твой код jQuery?
  • 0
    пока что это очень простой код: function select (text) {alert (text); }
Показать ещё 3 комментария
Теги:

2 ответа

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

Попробуйте изменить строку:

    echo "<div onclick='select(\" ".$buffer." \");'>".$buffer."</div><br/>";

в

    echo "<div onclick='select(\" ".rtrim($buffer)." \");'>".$buffer."</div><br/>";

или:

    echo "<div onclick='select($(this).text());'>".$buffer."</div><br/>";
  • 0
    Спасибо, он работает с rtrim (), но все еще не может понять, в чем проблема? Сывороточный ртрим () нужен?
  • 1
    fgets считывает строки из файла и возвращает их с символами конца строки, эти символы печатают вам html-код и вызывают ошибку JavaScript - SyntaxError: неопределенный строковый литерал (я вижу это в консоли Firefox JavaScript). Ошибка повышения, потому что конец строки в JavaScript работает так же, как; символ - конец оператора, поэтому в вашем коде оператор заканчивается до закрытия строкового литерала
Показать ещё 2 комментария
1

Возможно, ваш буфер $ содержит некоторые двойные кавычки, которые затем мешают окружающим двойным кавычкам. Посмотрите на подготовленный код HTML, если это так, возможно, вы увидите что-то вроде этого:

<div onclick='select("He said: "Freeze!"")'>

... который Javascript не может правильно разобрать. Если это так, рассмотрите возможность использования:

echo "<div onclick='select(".json_encode($buffer).")'>";
  • 0
    Это не только проблема двойных кавычек, но многие другие символы могут вызывать ту же проблему - возможно, символы новой строки и тому подобное. Вероятно, это причина того, почему rtrim (), упомянутый в другом ответе, помог (у вас, вероятно, был \ n в конце $ buffer).

Ещё вопросы

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