0 レビュー
1 回答
php-AJAX投稿が正しい値を送信していません
AJAXを使用してビューからコントローラーにデータを送信しようとしています。それが完了したら、そのデータを新しいビューに転送し、それに応じて情報を表示するために使用するというアイデアがあります。しかし、試してみると、データがビューに届きません。奇妙なことに、Chromeの開発者ツールを使用しているときにAJAX呼び出しのsuccess関数でデータをconsole_logすると、変数が正しいことが示されますが、その変数をhtmlで表示しようとすると、次の値になります。 0.何かアイデアはありますか?
私の表示機能:
$(document).on("keyup", function(e){
guess = String.fromCharCode(e.which).toLowerCase();
if (counter < test_key.length){
if (guess == 'f' || guess == 'j'){
if (guess == test_key[counter].answer){
console.log(counter);
console.log(test_key[counter]);
$(document).off('keyup');
$('#imageLocation').hide();
counter++;
practiceTask(counter, test_key, test_id);
}
else{
$.ajax({
type: "POST",
url: '<?php echo site_url('practiceTest/errorPage'); ?>',
data: {question: 6},
success: function(data){
console.log(data);
window.location.href = '<?php echo site_url('practiceTest/errorPage'); ?>';
}
});
}
}
}
});
私のコントローラーのerrorPage関数:
function errorPage(){
if (!empty($_POST['question'])){
$data['question'] = $this->input->post('question');
}
else{
$data['question'] = 0;
}
$this->load->view("practice_incorrect_view", $data);
}
そして私の新しいビューpractice_incorrect_view:
<html>
<head>
</head>
<body>
<?php echo $question; ?>
<div class="centered">
<div style="width: 500px; margin: 20px auto;">
</div>
</div>
</body>
</html>
わからない
0
レビュー
答え :
解決策:
問題の根本は、 practiceTest/errorPage
に正常にPOSTしていることです(したがって、コンソールが正しい)が、成功のコールバックでは、投稿したばかりのフォームデータについて何も知らないpracticeTest/errorPage
に移動しています。
$。ajax({
タイプ:「POST」、
url:'<?php echo site_url(' practiceTest/errorPage'); ?>'、
データ:{質問:6}、
成功:function(data){
console.log(data);
//-これは厄介な行です
//-window.location .href ='<?php echo site_url(' practiceTest/errorPage'); ?>';
}
});
window.location
を使用してリダイレクトするのではなく、成功したAJAXリクエストから返されたデータを使用してDOMを直接変更する必要があります。
どこかに例がありますか?
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。