2012-05-31 3 views
0

эй у меня есть этот JavaScript для пузыриться ... этот сценарий получает InfoID и InfoData тегов из файла XML ...Получите данные из Mysql вместо XML?

<script type="text/javascript"> 
$(document).ready(function () { 
    // Get the XML data from your file 
    $.get('scores.xml', function(data) { 

     // Because we've given jQuery the XML datatype, we can jump straight to finding the element.  
     $(data).find('Game').each(function () { 

      // The current object now holds a single "GAME" - find the elements we need 
      var game_id = $(this).find('InfoID').text(); 
      var game_info = $(this).find('InfoData').text(); 

      // Create the popup. 
      $('.'+game_id).CreateBubblePopup({ 
        position : 'left', align : 'center', 
        innerHtml: game_info, 
        innerHtmlStyle: { color:'#FFFFFF', 'text align':'center' }, 
        themeName: 'all-black', 
        themePath: 'images/jquerybubblepopup-themes' 
      }); 
     }); // end of each 
    }, 'xml'); // The 'xml' tells jQuery to expect XML back from the request 
}); 
</script> 

мне нужно сделать этот сценарий получить данные из таблицы базы данных вместо XML.

У меня есть одни и те же InfoID и InfoData строки в таблице в моей базе данных ...

я использовать этот скрипт для получения данных из БД:

<?php 
    // Connect to database server 
    mysql_connect("localhost", "root", "asnaeb") or die (mysql_error()); 

    // Select database 
    mysql_select_db("scores") or die(mysql_error()); 

    // SQL query 
    $strSQL = "SELECT * FROM latest"; 

    // Execute the query (the recordset $rs contains the result) 
    $rs = mysql_query($strSQL); 

    // Loop the recordset $rs 
    // Each row will be made into an array ($row) using mysql_fetch_array 
    while($row = mysql_fetch_array($rs)) { 

     // Write the value of the column FirstName (which is now in the array $row)?> 
     <?php echo $row['Header'].""; ?> 
     <?php echo $row['Row'].""; ?> 
     <?php echo $row['Date'].""; ?> 
     <?php echo $row['Time'].""; ?> 
     <?php echo $row['AwayTeam'].""; ?> 
     <?php echo $row['Score'].""; ?> 
     <?php echo $row['HomeTeam'].""; ?> 
     <?php echo $row['Other'].""; ?> 
     <?php echo $row['InfoID'].""; ?> 
     <?php echo $row['InfoData'].""; ?> 

<?php } mysql_close(); ?> 

любая идея, как я могу это сделать ? поэтому я могу удалить свой xml-файл и использовать базу данных :) Спасибо заранее.

+4

Почему бы не преобразовать данные MySQL в XML? Или, еще лучше, Джон? –

+0

Я думаю, что у Джона есть правильная идея. Вместо того, чтобы просто повторять все данные в цикле while, пусть это будет отражать данные, отформатированные как xml (или json - я также одобряю это), поэтому вам нужно будет только внести минимальные изменения в javascript. – gregghz

+0

Я использовал xml для всего, я недавно изменил и начал использовать базу данных ... поэтому я хочу, чтобы весь сайт получил информацию из базы данных и удалил xml ... и я все еще новичок в PHP-материале :) – Meh

ответ

0

Вы можете использовать пост ajax с отдельной функцией обратного вызова и вернуть данные json из вашего php-скрипта.

Дайте этот выстрел:

// try this for your javascript 
<script type="text/javascript"> 
$(document).ready(function () { 
    function getGameInfo() { 
    $.post("path/to/phpScript.php", 
    // this is the success callback 
    function (json) { 
    // this calls the function with the returned data 
    parseReturnedData(json); 
    }); 
    return false; 
}; 

// process json data to set your game_id and game_info vars 
function parseReturnedData(data) { 
    var obj = jQuery.parseJSON(data); 
    var game_id = obj.InfoID; 
    var game_info = obj.InfoData; 
} 

// Create the popup. 
$('.'+game_id).CreateBubblePopup({ 
    position : 'left', align : 'center', 
    innerHtml: game_info, 
    innerHtmlStyle: { color:'#FFFFFF', 'text align':'center' }, 
    themeName: 'all-black', 
    themePath: 'images/jquerybubblepopup-themes' 
}); 
</script> 

// try this for your php file 
<?php 

    // declare vars 
    $response = array(); 

    // Connect to database server 
    mysql_connect("localhost", "root", "asnaeb") or die (mysql_error()); 

    // Select database 
    mysql_select_db("scores") or die(mysql_error()); 

    // SQL query 
    $strSQL = "SELECT * FROM latest"; 

    // Execute the query (the recordset $rs contains the result) 
    $rs = mysql_query($strSQL); 

    // Loop the recordset $rs 
    // Each row will be made into an array ($row) using mysql_fetch_array 
    while($row = mysql_fetch_array($rs)) { 

     // Write the value of the column FirstName (which is now in the array $row)?> 
     $response['Header'] = $Header; 
     $response['Row'] = $Row; 
     $response['Date'] = $Date; 
     $response['Time'] = $Time; 
     $response['AwayTeam'] = $AwayTeam; 
     $response['Score'] = $Score; 
     $response['HomeTeam'] = $HomeTeam; 
     $response['Other'] = $Other; 
     $response['InfoID'] = $InfoID; 
     $response['InfoData'] = $InfoData; 

    } 

    echo json_encode($response); 



    mysql_close(); 

?> 
+0

Я ценю вашу помощь помощника! но, я новичок в PHP :(может у сказать, что мне делать? (для noob: P) – Meh

+0

Я отредактировал свой ответ, чтобы попытаться помочь еще. – chapman84

Смежные вопросы