AJAX MySQL veri alın

3 Cevap php

Ben bir AJAX acemi ve ben mySQL dışında ve benim javascript işlevi veri almaya çalışırken büyük sorun yaşıyorum.

Ne yapmak istiyorum php benim veri döngü ve her nasılsa sayfada çeşitli adlandırılmış divlere içine veri göndermek.

İşte benim javascript sayfasından kod:

function loadPageContent(){

var projectID = getQuerystring('pid');
var templateID = getQuerystring('t');

xmlHttp=GetXmlHttpObject()

if (xmlHttp==null){
 alert ("Browser does not support HTTP Request")
 return
} 

var url="getImages.php"
url=url+"?projectID="+projectID
url=url+"&templateID="+templateID
xmlHttp.open("GET",url,true);
 xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 

document.getElementById("statusdebug1").innerHTML=xmlHttp.responseText;
            }
        }

xmlHttp.send(null);
} 

İşte benim php sayfası için kod:

    <?php 

$projectID = $_GET["projectID"];
$templateID = $_GET["templateID"];

include_once('includes/php/conn.php');

$sql ="select * FROM imageSel WHERE projectID='$projectID' AND templateName = '$templateID'";

$results=mysql_query($sql, $link);

if(!($mysql_rs = mysql_query($sql, $link)))
die("Error in executing query");

echo "<script language='JavaScript'>";

while($row =mysql_fetch_assoc($results) ){ 

$imageSelID = $row['imageSelID'];
$templateName = $row['templateName'];
$tNode = $row['box'];
$image = $row['image'];


$sql2 ="select * FROM products WHERE productid='$image'";

if(!($mysql_rs = mysql_query($sql2, $link)))
die("Error in executing query");

//Retrieve values
$row2 = mysql_fetch_array($mysql_rs);

$productname = $row2['productname'];
$subcategoryid = $row2['subcategoryid'];


    $sql3 ="select * FROM subcategory WHERE subcategoryid='$subcategoryid'";

    if(!($mysql_rs = mysql_query($sql3, $link)))
    die("Error in executing query");

    //Retrieve values
    $row3 = mysql_fetch_array($mysql_rs);

    $foldername = $row3['foldername'];
    $foldername = strtolower($foldername);


$theImage = '<img src="images/lowres/' . $foldername . '/' . $productname .'" />';

echo "document.getElementById(".$tNode.").innerHTML=".$theImage.";";

}

echo "</script>";

?>

3 Cevap

Ben AJAX uygulamak nasıl tipik değil.

Doğru yapıldığında AJAX, tarayıcıya veri göndermek gerektiğini, daha sonra tarayıcı onunla ne karar verelim.

Veriler daha sonra uygun bir şekilde ele çözmek için bir JSON library kullanmak Javascript ucunda o zaman, JSON biçiminde tarayıcıya göndermek istediğiniz verileri koymak için json_encode kullanmayı deneyin.

İyi şanslar!

Bu kodu kullanın lütfen:

Xmlhttp.open ("GET", url, false);

Eğer gerçek tutuyor eğer o Asenkron ajax arayacak çünkü.

Ben yanlışım varsa düzeltin lütfen.

Sen div innerHTML Ajax yanıtı ayarı vardır. Ama (Ajax yanıt olur) sizin PHP çıktı javascript. Javascript sarıcı olmadan sadece img etiketi çıktısı sahipsiniz. Ya da, hatta sadece "Merhaba Dünya" çıktısı;

ADD TO EDITED: Sen istemci tarafında ve sunucu tarafında javascript getElementById ve InnerHtml kullanıyorsunuz. Bu gereksizdir. Muhtemelen yani, html ve javascript, istemci tarafında tutmak istiyorum