|
|
|
| Есть такой замечательный код, который прекрасно выполняет свои функции:
<?php
echo <<<TEXT
<div id="res"> </div>
<script src="jquery.min.js"></script>
<script>
function starter(file)
{
$.get(file+".php");
}
</script>
<input type="button" onclick="starter(31)" value="Пуск-1" />
<input type="button" onclick="starter(32)" value="Пуск-2" />
TEXT;
| Этот код запускает скрипты в файлах с именами 31.рнр и 32.рнр.
А вот при попытке запустить файл с именем form-3a.php в браузере получаем сообщение об ошибке:
Сведения об ошибке на веб-странице
Сообщение: Предполагается наличие ')'
Строка: 17
Символ: 15
Строка 17 содержит
<input type="button" onclick="starter(form-3a)" value="Пуск-1" />
|
Куда здесь надо вставить скобку т зачем она - непонятно... | |
|
|
|
|
|
|
|
для: Владимир55
(02.11.2009 в 23:08)
| | Скобок не надо, кавычки нужны:
onclick="starter ('form-3a')"
|
И это не какое-то "специальное требование AJAX'a".
Это - вполне нормальное "требование Javasсript'a": всякая явная СТРОКА в JS-коде должна быть закавычена. Иначе браузер воспринимает написанное как имена переменных (объектов).
В вашем случае, из-за отсутствия кавычек и из-за наличия символа "минус" в передаваемой функции строке, таковых якобы "переменных" целых ДВЕ: браузер пытается составить арифметическое выражение, в котором участвует ранее неопределённая вами переменная с именем form, от которой надо "отнять" также ранее неопределенную переменную с именем 3a.
Ранее, когда вы передавали функции ЧИСЛА (31 или 32), то браузер обрабатывал их как числа (которые определены сами по себе), а потом, внутри функции при составлении имён файлов (31.php и 32.php) автоматически преобразовывал эти определённые числа в СТРОКИ. Это для браузера просто, понятно и естественно.
Контрольныe примеры для усвоения пройденного:
1. <script>alert (123);</script> //работает без проблем
2. <script>var w = 12; var q = 10; alert (w-q);</script> //также работает без проблем
3. <script>alert ('w-q');</script> //и это работает
4. <script>alert (w-q);</script> //а это - НЕ РАБОТАЕТ, переменные с именами w и q не определены.
|
| |
|
|
|
|
|
|
|
для: АЯ
(03.11.2009 в 03:19)
| | Очень интересное и понятное разъяснение, весьма поучительные примеры - я всё это опробовал.
В моей пока небольшой коллекции скриптов нашлось несколько, содержащих в себе те же ошибки, которые на основании Вашего совета удалось исправить.
Большое спасибо! | |
|
|
|