Я новичок в JSON и AJAX, поэтому они искали решения и экспериментировали в течение нескольких дней, прежде чем приступать к заданию здесь. Я использую AJAX для обработки страницы PHP на submit. Он сохраняет информацию в порядке, но мне также нужна страница PHP, чтобы передать обратно вставленный идентификатор. Вот что я до сих пор.Проблемы с JSON и 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 скрипт вызывает этот метод, чтобы вставить данные и возвращает вставленную ID:
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 ~
'эхо json_encode (массив ("ID"=> $ iReturn));' – thetaiko
Что содержит '$ iReturn'? Он содержит 'array ('id' => 123);'? – Shef
Я не думаю, что вам нужно $ .getJSON() в обратном вызове. Это вызовет другой вызов сервера. Просто введите ID как json на начальной странице результатов. – ZeissS