Получите данные MYSQL в AJAX - PullRequest
0 голосов
/ 20 января 2010

Я новичок в AJAX, и у меня возникают серьезные проблемы при попытке вывести данные из mySQL в мою функцию javascript.

Что я хочу сделать, так это перебрать мои данные в php и каким-то образом отправить эти данные в различные именованные div-ы на странице.

Вот код с моей страницы JavaScript:

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);
} 

Вот код для моей php-страницы:

    <?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 ]

0 голосов
/ 20 января 2010

, пожалуйста, используйте этот код:

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

, потому что если вы сохраняете его true, то он будет вызыватьasynchronize ajax.

Пожалуйста, исправьте, если я ошибаюсь.

0 голосов
/ 20 января 2010

Вы устанавливаете ответ Ajax на innerHTML div. Но вы выводите javascript на свой PHP (который становится вашим ответом Ajax). Попробуйте вывести только тег img без оболочки javascript. Или даже просто вывести «Hello world»;

ИЗМЕНЕНО В ДОБАВЛЕНИЕ: Вы используете javascript getElementById и innerHtml на стороне клиента и на стороне сервера. Это избыточно. Вы, вероятно, хотите сохранить его на стороне клиента, т. Е. Ваши HTML и JavaScript

0 голосов
/ 20 января 2010

Обычно я бы не реализовал AJAX.

AJAX, если все сделано правильно, должен отправить данные в браузер, а затем позволить браузеру решить, что с ним делать.

Попробуйте использовать json_encode, чтобы поместить данные, которые вы хотите отправить, в браузер в формате JSON, затем в конце Javascript используйте библиотеку JSON для декодирования данных и соответствующей обработки.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...