Я не уверен, может ли это привести к тому, что jQuery «сработает» или нет ... но похоже, что вы отправляете свои данные POST как данные GET.
data: "response=" + $('#response').attr('value') + "&key=" + e.which;
Если вы попытаетесь найти эти переменные в initiate.php, используя $ _POST ['response'], я думаю, что они не смогут найти их, если jQuery не знает, как волшебным образом превратить их в переменные post.
Должна ли переменная post для 0 или 1 также называться 0 или 1? Немного странно менять имя переменной в зависимости от того, какая переменная установлена. Таким образом, для целей этого примера я собираюсь изменить имя переменной на keyPressed. т.е. (keyPressed = 0 или keyPressed = 1).
// shows a given element and hides all others
function submitViaKeypress(element_id)
{
var response = $('#response').attr('value');
$.ajax({
type: "POST",
url: "initiate.php",
data: {response:response, keyPressed: element_id}
});
}
Теперь в вашем файле initiate.php получите эти переменные, используя переменную $ _POST.
$response = $_POST['response'];
$keyPressed = $_POST['keyPressed'];