2012-04-12 5 views
2

Я использую ajax для получения того, что пользователь выбрал в поле «выбрать» и отправил его в файл php. Затем мне нужно, чтобы результаты запроса с этими результатами выбора были загружаемыми. Поэтому просто повторю, когда они нажимают что-то jquery/ajax отправляет его на php. php возвращает список вещей для повторного выбора, это происходит до тех пор, пока они не выбрали пять параметров. Затем, под полями выбора, появляется ссылка, указывающая на экспорт (загрузка). Эта ссылка должна отправить их в php function export() вместе с сообщением о том, что имя хранимой процедуры мне нужно экспортировать. Наряду с 5 результатами отбора в качестве параметров хранимой процедуры. Надеюсь, это имело смысл. вот мой код.Отсутствует] после ошибки списка элементов

PHP отправки результатов в JS файл -------

$jsStr = '['; 
    if ($query->num_rows() > 0) { 
     foreach ($query->result() as $row) { 
      $jsStr .= '["'. $row->count_result .'","'. $row->count_desc .'","'. $row->count_SP .'",'. $cn .','. $gp .','. $co .','. $st .','. $dp .']'; 
     } 
     $jsStr = substr($jsStr,0,-1); 
    } 
    $jsStr .= ']'; 

    return 'changeResults('. $jsStr .');'; 

JS ----------------

function changeResults (data) { 
    $('#systems').html(data[0][0] +' - '+ data[0][1] +' <a href="http://95.211.130.165:8080/index.php/discovery/export?sp='+ data[0][2] +'&cn='+ data[0][3] +'&gp='+ data[0][4] +'&co='+ data[0][5] +'&st='+ data[0][6] +'&dp='+ data[0][7] +'">Export</a>'); 
    $('#users').html(data[1][0] +' - '+ data[1][1] +' <a href="http://95.211.130.165:8080/index.php/discovery/export?sp='+ data[1][2] +'&cn='+ data[1][3] +'&gp='+ data[1][4] +'&co='+ data[1][5] +'&st='+ data[1][6] +'&dp='+ data[1][7] +'">Export</a>'); 
} 

Ошибка I получить от поджигатель

отсутствующего] после списка элементов [Перерыв на этой ошибке]

... NV02) - Пользователи подсчитываются в выбранной СБН ope "," usr_disc_Inv_usr_content ", 1,1,1,1,1])

Сообщите мне, если что-то неясно, спасибо!

+0

Трудно сказать, не показывая нам: 1) значение строки, сгенерированной PHP, или 2) значение каждого столбца, используемого для построения строки в PHP. –

+0

Что значит значение строки или столбца? –

+0

Вы должны рассмотреть ['json_encode()'] (http://php.net/json_encode), так как он выполняет всю кодировку для вас, и это намного быстрее, чем чистый PHP ... – rid

ответ

3

Я действительно не знаю JavaScript или все, что вы используете. Но он смотрит на меня, как если бы вы удалить последний ] добавляемые в foreach loop по

$jsStr = substr($jsStr,0,-1); 

Я думаю, что у вас запятая в конце строки в foreach. Например:

foreach ($query->result() as $row) { 
    $jsStr .= '["'. $row->count_result .'","'. $row->count_desc .'","'. $row->count_SP .'",'. $cn .','. $gp .','. $co .','. $st .','. $dp .'],'; 
} 

Таким образом, это имеет для меня больше смысла. Чтобы получить брекетинг, вы должны либо добавить эту запятую назад (что, я думаю, является правильной нотацией), либо удалить операцию substr.

+0

id будет лучше, если @dylan будет использовать json_encode/decode, мои 2 цента –

+0

Вы, мой друг, джентльмен и ученый. Я не знаю, что такое json, но это была запятая. Должно быть, я случайно удалил это. Спасибо zpea –

+0

Да, наверное. Ответ на joeframbach выглядит намного чище. Таким образом, в основном это быстрое решение для текущей реализации Dylan. Ответ Джо - это то, что он должен использовать :) – zpea

3

Линия:

$jsStr = substr($jsStr,0,-1); 

Вы удаления ] с конца вашей строки. Вот почему. Не уверен, почему эта линия там.

4

Давайте почистим это много!

$jsArr = array(); 
    if ($query->num_rows() > 0) { 
     foreach ($query->result() as $row) { 
      $jsArr[] = array(
       $row->count_result, 
       $row->count_desc, 
       $row->count_SP, 
       $cn, 
       $gp, 
       $co, 
       $st, 
       $dp, 
      ); 
     } 
    } 
    $jsStr = json_encode($jsArr); 

    return 'changeResults('. $jsStr .');'; 
+0

Да, это выглядит хорошо. Однако я думаю, что в '$ dp,' (?) – zpea

+0

есть слишком много запятой. ОК, я вижу, что PHP отличается :) – zpea

+1

В php разрешены запятые. Лично мне это нравится. Предположим, вы хотите прокомментировать последнюю строку или поспешно скопировать-вставить в новый элемент. Наличие запятой служит для напоминания вам, что это список и добавить запятую. –

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