ОБНОВЛЕНИЕ MYSQL в массиве с extjs, один ответ - PullRequest
0 голосов
/ 06 января 2012

Я режу зубы на extjs и сталкиваюсь с проблемой. У меня есть функция, которая обновляется из таблицы сетки, и я пытаюсь отправить «успех» обратно в браузер в виде JSON-оператора. Если я обновляю только одно значение, оно работает нормально. Однако, если я обновляю несколько значений (из массива), ответ отправляется для каждого, что приводит к ошибке. Как я могу дать один ответ для всего массива?

Код ниже:

    $conn   = mysql_connect ('localhost', 'root', '') or die (mysql_error ());
    mysql_select_db ('cptestdata', $conn ) or die (mysql_error ());

    $json_string = file_get_contents("php://input");
    $obj = json_decode($json_string, true);

    // check for single update value. if so, create array wrapper
        if(!isset($obj [0])) {
            $temp = array();
            $temp[] = $obj;
        $obj = $temp;
        }
        foreach ($obj as $value) {

            $option_id      = $value['option_id'];  
            $option_val     = $value['option_value'];   

                $option_q   = "
                        UPDATE wp_options
                        SET option_value='".$option_val."'
                        WHERE option_id='".$option_id."'
                        ";


                mysql_query($option_q);


                // json output to notify the insert is success or not
                if ($option_q) {
                        echo '{"success":"true"}';
                }
                else {
                        echo '{"success":"false"}';
                }
        } // endforeach

1 Ответ

1 голос
/ 06 января 2012

Удалите echo из цикла, как это:

    $conn   = mysql_connect ('localhost', 'root', '') or die (mysql_error ());
    mysql_select_db ('cptestdata', $conn ) or die (mysql_error ());

    $json_string = file_get_contents("php://input");
    $obj = json_decode($json_string, true);

    // check for single update value. if so, create array wrapper
        if(!isset($obj [0])) {
            $temp = array();
            $temp[] = $obj;
        $obj = $temp;
        }
        $success = TRUE;
        foreach ($obj as $value) {

            $option_id      = $value['option_id'];  
            $option_val     = $value['option_value'];   

                $option_q   = "
                        UPDATE wp_options
                        SET option_value='".$option_val."'
                        WHERE option_id='".$option_id."'
                        ";


                mysql_query($option_q);

                if (!$option_q)
                  $success = FALSE;


        } // endforeach

        // json output to notify the insert is success or not
        if ($success) {
                echo '{"success":"true"}';
        }
        else {
                echo '{"success":"false"}';
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...