Почему мой вывод PHP зашифрован, когда я предоставляю ввод для печатного вызова javascript? - PullRequest
1 голос
/ 30 августа 2011

Я генерирую HTML-код в файле PHP, а затем возвращаю результат в функцию AJAX для включения его в уже загруженную веб-страницу.

Мой код:

$schoolName=$row->name;
echo "<td><b onclick=\"selectSchool(\"$schoolName\")\">$schoolName</b></td><td>{$row->stateName}</tr>";

Ожидаемый результат будет:

<td><b onclick="selectSchool("Foo")">Foo</b></td>

Но я получаю уродливый меланж:

<td><b angeles)")"="" (los="" university="" lincoln="" abraham="" onclick="selectSchool(">Abraham Lincoln University (Los Angeles)</b></td>

Если бы я просто получал нежелательный результат, я бы не сталбудьте так обеспокоены, но по какой-то причине вывод становится полностью зашифрованным, и я понятия не имею, почему.Я не могу понять, откуда взялись такие вещи, как 'los = ""!

Если я не использую переменную в вызове функции selectSchool (), я получаю ожидаемый результат, но это бесполезнов этот момент мне нужно иметь возможность передать соответствующее значение в функцию, чтобы она работала!

Запрошено var_dump:

string 'Abraham Lincoln University (Los Angeles)' (length=40)

object(stdClass)[3]
  public 'name' => string 'Abraham Lincoln University (Los Angeles)' (length=40)
  public 'stateName' => string 'California' (length=10)

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Почему бы вам просто не использовать одинарные кавычки при передаче параметра в selectSchool(), как это?

<td><b onclick=\"selectSchool('$schoolName')\">$schoolName</b></td><td>{$row->stateName}</tr>";

Таким образом, вы получите следующий результат

<td><b onclick="selectSchool('Foo')">Foo</b></td>

Это не нарушит HTML

2 голосов
/ 30 августа 2011

Полагаю, что из-за того, что в вашем тексте есть кавычки ("), вы должны передать $schoolName переменную throw добавление косой черты функцию.

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