jquery мануал. Похоже ошибка в php части

Тема в разделе "PHP", создана пользователем phillip, 23 мар 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Пробую работать с jquery и отказывается у меня работать один мануальчик. Но я думаю там проблема не в jquery, а в пхп. Помогите разобраться. Суть такова. jquery посылает запрос в пхп файл,
    $_POST['action'] в моем случае равен 'list', поэтому привожу соотвествующий кусок кода:

    Код:
    function listEntry(){
    $sql = "SELECT * FROM `todo` WHERE 1";
    	if($result = mysql_query($sql)){
    		$list = array();
    		while($todo = mysql_fetch_array($result, MYSQL_ASSOC)) $list[] = $todo;
     
    		return $list;
    	}
     
    	return false;
    }
    switch($_POST['action']){
    case 'list':
    		if($list = listEntry()){
    			foreach($list as $key => $value){
    				$list[$key] = autoencode(implode('|', $value));
    				
    			}
    			print implode("\n", $list);
    		}
    	break;
     
    }
    
    Соответственно на выходе мне передается какая-то шляпа, которая не работает нифига. Помогите найти ошибку! сам урок по которому я делаю- тут хttp://www.kachayev.ru/2008/11/27/jquery-mysql-i-polnocennoe-veb-prilozhenie/
     
  2. funman

    funman

    Регистр.:
    28 дек 2007
    Сообщения:
    155
    Симпатии:
    25
    а что не выходит, ошибки или что нибудь выдает?
     
  3. virtualbrest

    virtualbrest

    Регистр.:
    6 май 2007
    Сообщения:
    210
    Симпатии:
    18
    вот это: return false; разве надо не так: else { return false; } ? Помоему оно в функции listEntry() все время возвращает false
     
  4. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    1) В базе данные есть?

    Код:
    SELECT * FROM `todo` WHERE 1
    2) Если база непуста, listEntry() возвращает непустой массив?
    Что в нем, если вывести?

    3) Если в массиве все нормально, не портятся ли элементы массива при присвоении:

    Код:
    $list[$key] = autoencode(implode('|', $value));
     
  5. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    >>вот это: return false; разве надо не так: else { return false; } ? Помоему оно в функции listEntry() все время возвращает false

    хз. по-моему так как написано- тоже верно. я плохо шарю :confused:. но попробовал ваш вариант- осталось по-прежнему.

    @funman
    ошибки не выдает, выдает вот чо. http://makedeal.ru/1.gif

    @jik
    1) данные есть.
    2) в пхп я начинающий))) пробую делать gettype $f; $f= listEntry();. В итоге говорит что listEntry() это массив. Стало быть, не пустой он
    3) вот тут хз. как определить портятся или не портятся? я думал вообще что autoencode это функция такая в пхп, но описания к ней найти не смог. искал на php.su
     
  6. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    В код вставлены команды вывода отладочной информации. Выведется содержимое массива, затем выведутся строки 'begin loop' и 'end loop', между которыми будут вставлены строки со значениями, которые принимает $s

    Код:
    case 'list':
      if($list = listEntry()){
        print_r($list); // покажет, что в массиве
        print "begin loop\n";
        foreach($list as $key => $value){
          $s = autoencode(implode('|', $value));
          print "s=$s\n";
          $list[$key] = $s;
        }
        print "end loop\n";
        print implode("\n", $list);
      }
      break;
     
  7. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Вот что браузер показывает в результате:

    Код:
    Array ( [0] => Array ( [id] => 1 [text] => vcvcxv [data] => cxvxcv ) [1] => Array ( [id] => 2 [text] => 534543545ter [data] => 324e34 ) [2] => Array ( [id] => 3 [text] => 345 [data] => 324e34 ) [3] => Array ( [id] => 4 [text] => gf [data] => fdgdgd ) [4] => Array ( [id] => 5 [text] => nbnvbhjgjh [data] => gdfgrttryrty ) [5] => Array ( [id] => 6 [text] => ccxv [data] => vcxv ) [6] => Array ( [id] => 7 [text] => retrt [data] => fsdfsd ) [7] => Array ( [id] => 8 [text] => vcxvcx [data] => er34ttgsdfg ) [8] => Array ( [id] => 10 [text] => Starsky [data] => 423 ) ) begin loop 
    Fatal error: Call to undefined function autoencode()
     
  8. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    скрипт не находит функцию autoencode(). Поищите, в каком файле она определена, и вставьте эту функцию в файл, который мы анализируем.
     
    phillip нравится это.
  9. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    не имеется она. ни в одном из файлов мануала :nezn: давайте как-нибудь избавимся от нее :D

    Апдейт:
    Всё!!!!! оказывается в одном из других постов автор мануала расписал эту функцию. Я ее вставил и все заработало! Всем спасибо за помощь!! я освоил мануал)
     
Статус темы:
Закрыта.