2016-04-17 7 views
0

タイトルが大変申し訳ありませんが、私は本当に何を求めているのか分かりません。AJAXを使ってPHPに投稿する - 元のスクリプトに戻って値を取得する

私は境界線の色をチェックするJqueryスクリプトを持っています。色が一致すると、配列に保存され、PHPスクリプトに送信されます。

  var fields={}; 
      fields[0]=$('.block0').css("border-color"); 
      var divs={}; 
      divs[0]=$('.block0 h2').html(); 
      //The above are just examples sense the code is a little lengthy 
      var c=0; 
      var i=0; 
      var elements={}; 
      while (c !== 24) 
      { 
       if (fields[c] == "rgb(129, 222, 252)") 
       { 
        elements[i]=divs[c]; 
        alert (elements[i]); 
        i++; 
       } 
       c++; 
      } 
      $.ajax({ 
       url: "process.php", 
       data: elements, 
       type: "POST", 
      }); 

これらはすべて「hello.php」ファイル内にあります。

これが完了すると、表示されるように、変数は "process.php"というPHPスクリプトに渡されます。このスクリプトの中には、MYSQLデータベースや設定ファイルなどからより多くの情報を取得するなど、いくつかのことが起こります。私の目標は、この余分な情報を "hello.php"ファイルに戻すことです。

私がこのようにしているのは、リダイレクトやリフレッシュを避けるために努力しているからです。私はそれが正しい方法でやっているかどうかは完全にはわかりません。 とにかく、「process.php」から「hello.php」に余分な情報を渡そうとすると、私はちょっとした障害になります。すべての提案は非常に高く評価されています!

編集:ここでは、要求ごとに、いくつかのより多くのです:

hello.php

var openIt=function() 
     { 
      var fields={}; 
       fields[0]=$('.block0').css("border-color"); 
       fields[1]=$('.block1').css("border-color"); 
       fields[2]=$('.block2').css("border-color"); 
       fields[3]=$('.block3').css("border-color"); 
       fields[4]=$('.block4').css("border-color"); 
       fields[5]=$('.block5').css("border-color"); 
       fields[6]=$('.block6').css("border-color"); 
       fields[7]=$('.block7').css("border-color"); 
       fields[8]=$('.mmod2').css("border-color"); 
       fields[9]=$('.mmod3').css("border-color"); 
       fields[10]=$('.mmod4').css("border-color"); 
       fields[11]=$('.mmod5').css("border-color"); 
       fields[12]=$('.mmod6').css("border-color"); 
       fields[13]=$('.mmod7').css("border-color"); 
       fields[14]=$('.mmod8').css("border-color"); 
       fields[15]=$('.mmod9').css("border-color"); 
       fields[16]=$('.ttemp2').css("border-color"); 
       fields[17]=$('.ttemp3').css("border-color"); 
       fields[18]=$('.ttemp4').css("border-color"); 
       fields[19]=$('.ttemp5').css("border-color"); 
       fields[20]=$('.ttemp6').css("border-color"); 
       fields[21]=$('.ttemp7').css("border-color"); 
       fields[22]=$('.ttemp8').css("border-color"); 
       fields[23]=$('.ttemp9').css("border-color"); 
      var divs={}; 
       divs[0]=$('.block0 h2').html(); 
       divs[1]=$('.block1 h2').html(); 
       divs[2]=$('.block2 h2').html(); 
       divs[3]=$('.block3 h2').html(); 
       divs[4]=$('.block4 h2').html(); 
       divs[5]=$('.block5 h2').html(); 
       divs[6]=$('.block6 h2').html(); 
       divs[7]=$('.block7 h2').html(); 
       divs[8]=$('.mmod2 h2').html(); 
       divs[9]=$('.mmod3 h2').html(); 
       divs[10]=$('.mmod4 h2').html(); 
       divs[11]=$('.mmod5 h2').html(); 
       divs[12]=$('.mmod6 h2').html(); 
       divs[13]=$('.mmod7 h2').html(); 
       divs[14]=$('.mmod8 h2').html(); 
       divs[15]=$('.mmod9 h2').html(); 
       divs[16]=$('.ttemp2 h2').html(); 
       divs[17]=$('.ttemp3 h2').html(); 
       divs[18]=$('.ttemp4 h2').html(); 
       divs[19]=$('.ttemp5 h2').html(); 
       divs[20]=$('.ttemp6 h2').html(); 
       divs[21]=$('.ttemp7 h2').html(); 
       divs[22]=$('.ttemp8 h2').html(); 
       divs[23]=$('.ttemp9 h2').html(); 


      var c=0; 
      var i=0; 
      var elements={}; 
      while (c !== 24) 
      { 
       if (fields[c] == "rgb(129, 222, 252)") 
       { 
        elements[i]=divs[c]; 
        alert (elements[i]); 
        i++; 
       } 
       c++; 
      } 
      $.ajax({ 
       url: "process.php", 
       data: elements, 
       type: "POST", 
      }); 

     } 

それはここで

が実際にhello.phpの別の抜粋です....私が知っている、醜いですヘッダーやものを投げる:

<?php 
        $sql = "SELECT * FROM case_info"; 
        $result = mysqli_query($conn, $sql); 
        if (mysqli_num_rows($result) > 0) 
        { 
         $row = array(); 
         while($row[] = mysqli_fetch_array($result)); 
         $max=count ($row); 
         $c=0; 
         while (($max-1) <> $c) 
         { 
          echo '<script> 
            var block'.$c.'=function(){ 
             $(".block'.$c.'").css("border",".15vw solid #81DEFC"); 

            } 
            </script>'; 
          echo '<div onClick="block'.$c.'()" class="block'.$c.'"> 
             <div class="headerbl"><h2>'.$row[$c]["id"].'</h2></div> 
             <p>'.$row[$c]["client"].'</p> 
            </div>'; 
          $c++; 
         } 
        } 

       ?> 

最後に、新しいがありますは、ユーザーがこれらの「ブロック」の1つを開いたときに情報を含みます。基本的には、ユーザーがします。

  1. クリックブロック「<div class="block0">
  2. 新しいオーバーレイ型のdivは、特定の詳細が含まれますオープン
  3. をクリックして、 『読む』、彼らはクリックを考えてのようでした。」シナリオのより多くの」タイプ
+0

このプロセス全体でhello.phpがどこに関与しているかについて詳細をご記入ください。あなたのコードサンプルに基づいて見ることができるのは、単純な配列操作とprocess.phpへの投稿です。 –

+0

編集が必要な場合はお知らせください。 – Amath1an

答えて

1

使用AJAXコールバック関数PHPスクリプトでは、PHPスクリプトから変数を渡す

$.ajax({ 
     url: 'process.php', 
     type: 'POST', 
     data: data, 
     contentType: false, 
     cache: false, 
     processData: false, 
     success: function(data) { 
      var obj = $.parseJSON(data); 
      alert(obj.result);     
     } 
}); 

使用し、JSON形式のデータは、このようなものでなければなりません:

$jsonArray = array(); 
$jsonArray['result'] = 'result'; 
$jsonArray['data'] = 'data'; 
echo json_encode($jsonArray); 

が続いてJSONデータを解析あなたのjavascriptでparseJSON()を使用して変数を使用するには、obj.resultまたはobj.dataを使用します。

+0

あなたは男です!魅力的なように働いて...シンプルだけど、何らかの理由でそれだけで私と一緒にはクリックしなかった。ありがとう! – Amath1an

0

jQueryのAJAXあなただけの必要なものを行います機能を持っている

成功()関数:。。

要求が成功した場合に呼び出される関数。この関数は3つの引数を渡します。サーバから返されたデータ。dataTypeパラメータまたはdataFilterコールバック関数(指定されている場合)に基づいてフォーマットされます。ステータスを表す文字列。とjqXHR(jQuery 1.4.x、XMLHttpRequest内)オブジェクトです。

あなたはこのようなあなたのAJAXを行うことができます。運バディのベスト

$.ajax({ 
      url: "process.php", 
      data: elements, 
      type: "POST", 
      success: function(data) { 

       // data is a variable coming from process.php as return value 

      } 
     }); 

+0

情報をありがとう!私がAjaxを少し新しくしたので(これはまだ分かりません)、論理的には私には意味がないので、Jqueryはprocess.phpスクリプトから具体的にどのようなものを取得するのでしょうか?たとえば、process.phpで$ c = 1と設定した場合、success関数はどのようにしてそれを取得するのですか? – Amath1an

関連する問題