2012-06-27 2 views
0

Это вопрос, который синтезирует два вопроса, которые остаются unlsoved:Аякса JQuery неразгаданной

Я пытаюсь реализовать некоторый метод AJAX опубликовать некоторые комментарии на веб-странице. Я использую такой метод ajax:

<button id="my-btn">Make an Ajax request!</button> 

<script > 
    $('#my-btn').click(function() { 
    var comment = $('#id1').val(); 
    var m = {$id2}; 
    var data = new Array(); 
    data[0]= comment; 
    data[1]= m; 

    $.post('{$postURL}', data, function(callback_data){ 

    alert('hello'); 

    }); 

    }); 
</script> 

где m = {$ id2}; происходит из-за переменной smarty.

Предупреждение ('hello') работает, но PHP-код не обрабатывается: {$ postURL} требует метода comment() {$ comment = $ _POST [$ data [0]]; $ m = $ _POST [$ data [1]]; ...}. Итак, postURL похож: «index.php? Post = comment», а метод - comment(). Конечно, когда я заменяю {$ postURL} на "index.php? Post = comment", ничего не происходит в том смысле, что у меня все еще есть сообщение alert ('hello'), но метод comment() ничего не обрабатывает , Вызывается этот метод evenc? Или существует неправильный синтаксис, так что $ _POST [$ data [0]] и $ _POST [$ data [1]] aren (t признан bt для метода comment().

Способ, которым index.php работает перенаправление: на другую страницу php, назовите его mypage.php, где мы можем найти метод comment().

Кроме того, что-то очень странное: когда я коррумпировал $ .post ("{$ postURL}" по $ .post («{$ whatever}», у меня все еще есть предупреждение («привет»)! И более странно, когда я добавляю предупреждение (callback_data), внутри функции обратного вызова я получаю огромное предупреждение, состоящее из всего моего php код ...

Лучшие, Newben

ответ

1

Smarty использует эти фигурные скобки, поэтому вам нужно поместить их с помощью {ldelim} и {rdelim}, также вы не отправляете почтовые данные в качестве массива-корреспондента, поэтому $ _POST ['comment'] и т. Д. Не будет установлен - попробуйте вместо этого:

<script> 
    $('#my-btn').click(function() {ldelim} 
    var comment = $('#id1').val(); 
    var m = {$id2}; 
    var data = {ldelim} 
     comment: $('#id1').val(), 
     m: {$id2} 
    {rdelim}; 
    $.post("{$postURL}", data, function(callback_data){ldelim} 
     alert('hello'); 
    {rdelim}); 
    {rdelim}); 
</script> 
+0

Так что теперь, у меня нет никаких предупреждений («привет») сообщение – Newben

+0

к сожалению, у меня есть на самом деле предупредительное сообщение, но мой BDD остается пустым, но метод комментарий() Dosen 't process ... – Newben

+0

Возможно, это поможет: я положил t верное начало метода comment(): $ this-> unknownPage(); и ничего не произошло, не кажется, что этот метод называется. Есть ли проблема с $ .post ("url")? Я изменил на {$ postURL} index.php? Page = agora & op = comment, ant результат тот же! – Newben

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