Проблемы с JSON и PHP - PullRequest
       2

Проблемы с JSON и PHP

2 голосов
/ 01 сентября 2011

Я новичок в JSON и AJAX, и поэтому в течение нескольких дней искал решения и экспериментировал, прежде чем обратиться к этому вопросу.Я использую AJAX для обработки страницы PHP при отправке.Это прекрасно сохраняет информацию, но мне также нужно, чтобы страница PHP передавала назад вставленный идентификатор.Вот что у меня есть.

В случае успеха:

success: function(){            
    $('#popup_name img').remove();
    $('#popup_name').html('Saved'); 
    $('#fade , .popup_block').delay(2000).fadeOut(function() {
        $('#fade, a.close').remove();  //fade them both out
        $.getJSON(pathName, function(json){
            alert('You are here');
            alert("Json ID: " + json.id);
        });
    });
}

Затем скрипт PHP вызывает этот метод для вставки информации и возвращает вставленный идентификатор:

  public static function doInsertQuery($sparamQuery="",$bparamAutoIncrement=true,$sparamDb="",$sparamTable=""){
//do the insert
$iReturn = 0;
$result = DbUtil::doQuery($sparamQuery);
if(!$result){
  $iReturn = 0;
}
elseif(!$bparamAutoIncrement){
  $iReturn = DbUtil::getInsertedId();
}
else{
  $iReturn = DbUtil::getInsertedId();
}

//log the insert action
//if not a client logged in- cannot log to client db
if(Session::get_CurrentClientId() > 0){
  if($sparamTable != LogLogin::table_LOGLOGINS()){
    $oLog = new LogDbRequest();
    $oLog->set_Type(LogDbRequest::enumTypeInsert);
    $oLog->set_Request($sparamQuery);
    $oLog->set_RowId($iReturn);
    $oLog->set_TableName($sparamTable);
    $oLog->set_Before("NULL");
    $oLog->set_After(serialize(DbUtil::getRowCurrentValue($sparamDb,$sparamTable)));
    $oLog->insertorupdate_LogDbRequest();
  }
}
echo json_encode($iReturn);
return $iReturn;
}

Надеюсь, это имеет смысл.Я в полной растерянности здесь.Любая помощь будет принята с благодарностью!~ Mike ~

1 Ответ

1 голос
/ 09 сентября 2011

Это действительно просто. Функция success принимает аргумент, соответствующий ответу от сервера.

Клиентская сторона:

$.ajax({
    'url':'/path/to/script.php',
    'dataType':'json',
    'success':function(response){ //note the response argument
        alert(response.id); //will alert the id
    }
});

Серверная сторона:

<?php
    //...previous stuff here...
    $response = array('id' => $id); //where $id is the id to return to the client
    header('Content-type: application/json'); //Set the right content-type header
    echo json_encode($response); //Output array as JSON
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...