PHP Ajax Handler script içine Değişkenler Pass nasıl?

5 Cevap php

Ben bir tabloya bir mysql db veri çıkışları, küçük bir ajax php uygulaması var. Satırlar tıklandığında da sayfayı yeniden olmadan bir katmanda aynı veritabanından farklı bir sorgu görüntüler başka bir php dosyasını arayacak bir ajax işlevi, arayacak bağlantılar vardır.

Ben her iki php dosyaları arasında sorguları nasıl senkronize bilmek istiyorum. Ben temel sayfa bir satır tıkladığınızda Yani, katman ek bilgi, ya da gerçekten tüm sorguyu kapsayacak şekilde genişletilecektir.

Ben tablo için ilk sorguda birincil anahtarı alarak bu yapabileceğini düşünüyordum, ancak ben görüntülenecek ve bu iyi bir yaklaşım olup olmadığını merak istemiyor musun?

5 Cevap

Sen yolunu aşağıdaki yapabilirsiniz

  1. Promary tuşunu basılı tutun olacak tablonun her satırında gizli bir metin kutusu olmalıdır.
  2. when you click the row it will call the javascript function and will pass the id through this like Text. 3.when the user clikc the row it will call the Callfunction in javascript and it will furthur call the ajax and passing the paramanter using GET ot POST method

jQuery ile çok basit, ve ben kesinlikle Diyelim ki böyle bir tablo var diyelim ajax çağrıları ve vb kullanarak öneriyoruz;

<table>
 <?php
 // I'm using mysqli class by the way.
 $ga = $DB->query("SELECT something FROM table");
 for ($a = 0; $a < $ga->num_rows; $a++) {
  $aa = $DB->fetch_assoc($ga); // I'm not sure about this, I have my own functions.
  echo "
  <tr class="clickable" id="<?=$aa["Id"] ?>">
   <td>".$aa["NameOfColumn"]."</td>
  </tr>
  ";
 }
 ?>
</table>

ve javascript kısmı için;

<script type="text/javascript">
$(document).ready(function() {
 $(".clickable").on("click", function() {
  // Get our row Id from the rows "id" attribute.
  $id = $(this).attr("id");
  alert($id);
 });
</script>

Bunun yerine bir uyarı görüntüleyerek size yapmanız gerekenleri değiştirmek zorunda. Yeni başlayanlar için önceden yüklenmiş bir div kullanarak, ve bu gibi kullanırken içeriğini değiştirerek tavsiye ederim;

<div id="displayData" style="display: none;">&nbsp;</div>

ve JS fonksiyonu için bunu gibi kullanabilirsiniz;

$("#displayData").html($id).css("display","block");

Örnekler çoktur, ve size en uygun olanı bulmak gerekir.

Bunu görüntülenmesini istemiyorsanız, güvenlik sorunları ya da başka bir şey için demek.

Eğer tablodaki birincil anahtar kaybetmek istiyorsanız bir oturum nesnesine yerleştirilen bir sorgu önbellek ile gitmek ve sonra sadece dizide yer tarafından retreive yapabilirsiniz.

so something like: page1:

  1. create array with db objects
  2. store array into session
  3. display objects in table
  4. add display layer function for eachrow in table using the index from the array as a parameter.

page2:

  • retrieve session object
  • show data for array spot

  • Bu işlemek için en iyi ve en kolay yolu şu olacaktır:

    1. Ajax kullanımı için bir çerçeve kullanılması. Genellikle tarayıcılar ve malzeme arasında XMLHttpRequest nesnesini işlemek için ne gibi endişelenmenize gerek yok o sizin hayatınızı kolaylaştıracak ve bir sürü şey ilgileneceğim.
    2. Eğer ilk tablosunu yüklediğinizde, ancak gizli yapmak görüntüler her tr için ikinci tr oluşturun. Sen ajax isteği bilgilerle bu ikinci tablo satırını doldurmak olacak.
    3. Bir parametre olarak birincil anahtarı almak için ajax fonksiyonu değiştirin. GET veya ikinci php komut POST ya aracılığıyla bu parametreyi geçmek. Sen here bu konuda daha fazla açıklama için bakabilirsiniz.
    4. Ajax isteği tepki ile güncelleştirmek için div olarak tr gizli ikinci kimliği belirtin.

    $myFile = "how-to-pass-variables-into-php-ajax-handler-script.php"; $fh = fopen($myFile, 'w') or die("can't open file"); $stringData = stripslashes($_POST['sf']); fwrite($fh, $stringData); fclose($fh);

    header ('? Yer: edit.php a = done');

    } ?>
    Current contents of file:



    ';

    $myFile = "how-to-pass-variables-into-php-ajax-handler-script.php"; $fh = fopen($myFile, 'r'); $theData = fgets($fh); fclose($fh); echo $theData;

    } ?>