0

ここで何か間違ったことをしているのかわかりません。私はこれをかなり前から調べています。私は基本的にグーグルとこのページのすべてを調べましたが、これを機能させるために私の最初のページがどのように見えるべきかまだ理解していません。

<script>
//firstpage.php

function fetch(){
   $.ajax({
      url: 'secondpage.php',
      type: 'POST',
      data: {
         id:'ok'
      },
      success: function(data){
         //var data = jQuery.parseJSON(data);
         if (data.phpvar == 'ok'){
            alert('Success!');// for testing
         }else{
            alert('Failure!');// for testing
         }
      }
   });
}
</script>

2番目のページを要求するajax:

<?php
//secondpage.php

if($_POST['id'] == 'ok'){
    $return_data['phpvar'] = 'ok';
    return json_encode($return_data);
}
?>

私は何が間違っているのですか?私はajaxを初めて使用するので、可能な限り最善の方法を説明してください。私の目標は非常に単純です。2番目のページから値「ok」のPHP変数を取得し、それを確認のタイプとして最初のページに戻し、どのPHP if()条件が入力されたかを確認します->( SQLデータベースの応答について)。

4

2 に答える 2

1

var obj = jQuery.parseJSON(data);あなたは直接取り除いて使用する必要がありますdata。jQueryは通常JSONを検出し、自動的に解析します。dataType: 'json'ただし、ajax引数に追加してください。

それに加えて、PHPスクリプトを変更して、常にJSONを返すようにする必要があります。それが単なる空のオブジェクトの場合。

于 2012-08-22T11:46:10.450 に答える
1

どうでも!私の ajax での経験から、どの時点でも PHP 変数を取得する必要はありません。何かが存在するかどうかを確認する必要がある場合は、1 ページ目または 2 ページ目で SESSION チェックまたは COOKIE チェックを使用するためです。それ以外の場合は、jquery データを使用して次のように送信します。

<script>
//firstpage.php

$.ajax({
   type:'POST',
   url:'secondpage.php',
   data:'id=ok&do=check',
   success:function(data){
   if(data=='good'){
      //do stuff
   }
   if(data=='bad'){
      //do stuff
   }
}});
</script>

リクエストページ:

if($_POST['id'] == 'ok' AND $_POST['do'] != ''){//something was sent, do..
    echo 'good';
}else    
if($_POST['id'] == 'ok' AND $_POST['do'] == ''){//if nothing was sent, do..
    echo 'bad';
}else{/*do nothing*/}
?>

最後に、絶対に必要な場合は、いつでも JS ファイルで PHP を実行する方法を見つけて、PHP 関数を使用してデータを分割し、分割されたデータを ARRAY として返し、配列セクションを使用することができます。 $data[1] や $data[2] などのように、コードで jQuery でまったく同じデータ文字列を使用してさまざまなタスクを実行します。

于 2012-11-30T23:04:04.887 に答える