2012-10-14 2 views
-1

У меня есть программа PHP для подсчета кликов пользовательского баннера. Мой баннер ссылка что-то вроде этого:Позвоните в PHP-программу с Ajax

<a href="<?=$banner_url;?>" onclick="banner_click_count('<?=$banner_id;?>')"><img src=...> 

Когда пользователь нажимает на изображение, он запускает функцию banner_click_count() с $banner_id в качестве параметра.

function banner_click_count($ban_id) 
{ 
$.ajax({ 
    type: "POST", 
    url: 'banner_click.php', 
    data: {banner_id: $ban_id} 
    }); 

} 

В banner_click.php, я получаю banner_id с $banner_id = $_GET['banner_id']);, поиск в базе данных, основанной на нем. Найдите запись, затем добавьте 1 к banner_count поле столбца. После этого перенаправление на banner_url.

Когда я запускаю программу, я получаю Parse error: parse error, expecting T_VARIABLE' or '$'' на линии $.ajax({

Добавление: ошибка очищается при всей вашей помощи, но когда я нажимаю на ссылку он перенаправляет на banner_url непосредственно и не запустить Функция AJAX.

Добавление: Я поставил предупреждение ("привет"); в верхней части ajax-функции, и я получил ее. Поэтому он переходит в функцию

+1

функция banner_click_count является функция JavaScript, она должна быть в ''

2

1.You нужен поставить яваскрипт функции под <script> тегом

2.you необходимо пройти json string as post data

3.though вы передаете данные, как пост, так что вы получите эти данные в PHP as $_POST not $_GET

Таким образом изменить свою функцию, как показано ниже

<script> 
function banner_click_count(ban_id) 
{ 
$.ajax({ 
    type: "POST", 
    url: 'banner_click.php', 
    data: {banner_id: ban_id} 
    }); 

} 
</script> 

// in your php use as below 
echo $_POST['banner_id'] 
+0

о '2': Javascript позволяет использовать' $ variables'; '3': может быть хэш – ted

+0

@ted спасибо, что я не знал об этом. Снова спасибо – GBD

+0

Хорошо, ошибка очищена, но когда я нажимаю на ссылку, она перенаправляется на ** banner_url ** напрямую и не запускается ajax. –

1

Убедитесь banner_id является в кавычках и что вы включаете JQuery на свою страницу. И не забудьте вернуться к успеху/ошибке.

$.ajax({ 
    type: "POST", 
    url: 'banner_click.php', 
    data: {'banner_id': $ban_id}, 
    success: function(s) { 
    console.log('success' + s); 
    }, 
    error: function(e) { 
    console.log('error' + e); 
    } 
}); 
+0

Вопрос: знаете ли вы, как добраться до консоли? –

0

ли нам не нужно return false перед выходом из функции?

+0

Он по-прежнему работает без возврата, как бы ужасно это ни было. –

+0

Я добавил 'return false;' в конце. но все равно никакого результата. –

+0

Если вы используете Chrome и можете проверить, есть ли какие-либо ошибки в php, которые вы вызывали через ajax, вы можете зайти в настройку «Сети» на консоли. Много раз это помогает. – Zephyr

Смежные вопросы