0

发现这个旋转横幅http://www.impressivewebs.com/mlb-switcher并且我正在尝试使用 PHP 使其与我的 MySQL 数据库一起使用,我对这些东西相当陌生。

横幅有一个与之连接的 data.js 文件,位于下方,我正在尝试从我的数据库中上传前 6 条新闻,例如,headlineText 将显示标题,但我知道的唯一方法不起作用(即),我怎样才能在这个.js中<?php echo $nw_Title; ?>使用这个函数和其他类似的函数?<?php echo $nw_Title; ?>

提前致谢!这是 data.js 文件。

var currentItem = 1,

objMLB = {
    headlineText: [

        "Debuta José Figueroa en Clase-A Avanzada",
        "Cañizares impulsa a Guerreros sobre Diablos",
        "'El mejor momento de mi carrera'- Marwin González",
        "Peleando y arrebatando, Mochis saca el triunfo",
        "El incierto futuro de R.A. Dickey se podría definir",
        "Alex Ramírez llega a 2000 hits en la pelota Japonesa"
    ], // headlineText

    smallCaption: [
        "José Figueroa quedó segundo en porcentaje de bateo en la Dominican Summer League en 2012.",
        "David Reyes no permitió carrera y recetó siete chocolates en cinco entradas y un tercio.",
        "El venezolano Marwin González le rompió el juego perfecto a Yu Darvish en la novena entrada.",
        "Enterraron a los Venados con rally en la octava entrada para desempatar el juego.",
        "Los Mets de Nueva York negociarán con Dickey en Nashville.",
        "'Ramichan' se convirtió en el primer extranjero en lograr la hazaña de los 2000 imparables."
    ], // smallCaption

    descText: [
        "José Figueroa tuvo su primer aparición con los Tampa Yankees de Clase-A Avanzada donde bateó de 3-1 con un doble y una carrera anotada, el año pasado bateó .382 y produjo 39 carreras en 58 encuentros en la Dominican Summer League...",
        "Apoyados de una noche perfecta de Bárbaro Cañizares quien tuvo cuatro producciones, las cuales sirvieron para que los Yaquis de Ciudad Obregón a triunfo de 8 por 3 sobre los Tomateros.",
        "Con el pitcheo luciendo en todo lo alto, los Algodoneros de Guasave se hicieron de la doble cartelera  al vencer a los Mayos de Navojoa con marcadores de 3-2 y 2-1 respectivamente.",
        "Los Cañeros armaron su éxito con ataque en la parte alta de la octava entrada en el cual rompieron empate para asegurar el triunfo de 6 por 4 sobre los Venados de Mazatlán",
        "El pitcher nudillero y recientemente nombrado Cy Young de la Liga Nacional, R.A. Dickey, podría definir su futuro en su ciudad natal, Nashville, sede de las Juntas Invernales de Grandes Ligas.",
        "El venezolano Alex Ramírez logró su imparable número 2000 en la pelota japonesa de manera espectacular, conectando un cuadrangular en el triunfo de Yokohama contra Hiroshima..."
    ], // descText

    extURL: [
        "noticia_id1.php",
        "#2",
        "#3",
        "#4",
        "#5",
        "#6"
    ] // extURL

}; // objMLB ends here

是否无法在 .js 中添加如下查询?

<?php 
$sQuery = "Select * From tb_noticias Where nw_Status='activo' Order by nw_ID DESC LIMIT 0, 6";
$result = mysql_query($sQuery, $cnxMySQL) or die(mysql_error());
$rows_result = mysql_fetch_assoc($result);
$total_rows_result = mysql_num_rows($result);

if ($total_rows_result > 0){
    do {
        $id_noticias = $rows_result ['nw_ID'];
        $not_Titulo = $rows_result ['nw_Titulo'];
        $not_Resumen = $rows_result ['nw_Resumen'];
        $not_ImagenDesc = $rows_result ['nw_ImagenDesc'];
?>

smallCaption: [
    "<?php echo $nw_SmallCaption; ?>",
],

<?php
    }while($rows_result = mysql_fetch_assoc($result));
}else{
?>
<strong> "Error Fatal"</strong>

<?php  
}

mysql_free_result($result);

?>

在此先感谢您的帮助,希望您能理解我的问题,对不起我的英语...

编辑---我尝试过这样的事情

var currentItem = 1,

<?php 
$sQuery = "Select * From tb_noticias Where nw_Status='activo' Order by nw_ID DESC LIMIT 0, 6";
$result = mysql_query($sQuery, $cnxMySQL) or die(mysql_error());
$rows_result = mysql_fetch_assoc($result);
$total_rows_result = mysql_num_rows($result);

if ($total_rows_result > 0){
    do {
        $id_noticias = $rows_result ['nw_ID'];
        $not_Titulo = $rows_result ['nw_Titulo'];
        $not_Resumen = $rows_result ['nw_Resumen'];
        $not_ImagenDesc = $rows_result ['nw_ImagenDesc'];
?>


objMLB = {
    headlineText: [

        "<?php echo $not_Titulo; ?>",
    ], // headlineText

    smallCaption: [
        "<?php echo $not_ImagenDesc; ?>",
    ], // smallCaption

    descText: [
        "<?php echo $not_Resumen; ?>",
    ], // descText

    extURL: [
        "noticiasid.php?id=<?php echo $id_noticias; ?>",
    ] // extURL
<?php
    }while($rows_result = mysql_fetch_assoc($result));
}else{
?>
<strong> "Error Fatal"</strong>

<?php  
}

    mysql_free_result($result);

?>
};

</script>

但它不会工作,再次感谢,对不起,这是我第一次来这里。

4

2 回答 2

1

我同意 Niloy 的观点,我会给你一个小例子

 $news = array();
 $sQuery = "Select * From tb_noticias Where nw_Status='activo' Order by nw_ID DESC LIMIT 0, 6";
                    $result = mysql_query($sQuery, $cnxMySQL) or die(mysql_error());
                    $rows_result = mysql_fetch_assoc($result);
                    $total_rows_result = mysql_num_rows($result);

                    if ($total_rows_result > 0){
                        do {
                                $new=array(
                                "id_noticias" => $rows_result ['nw_ID'];
                                "not_Titulo" => $rows_result ['nw_Titulo'];
                                "not_Resumen" => $rows_result ['nw_Resumen'];
                                "not_ImagenDesc" => $rows_result ['nw_ImagenDesc'];
                                );
$news[]=$new; // Adding the new to our news collection  } 
                            ?>

// 循环后我们可以将它们编码成 JSON

<script type="text/javascript">
var newsObj = <?php json_encode($news); ?>    
</script>

现在您有了 JS obj,其中包含单个 news 的对象。您可以将其数据添加到您拥有的对象中

objMLB.headlineText.push(newsObj.new1.headline);
于 2013-07-08T08:20:38.507 回答
0

实际上可以data.js通过 php 脚本生成,但您必须处理一些警告:

  1. Web 服务器(例如 Apache)必须配置重写规则(对于 Apache,您需要 mod_rewrite)才能将每个请求传递data.js给 php 脚本,例如data_js.php
  2. 由于 Web 浏览器倾向于积极缓存 js 文件,因此您必须提供机制来让浏览器相信您确实获取了不同的内容。对于某些浏览器,只需发送正确的 HTTP 标头(无缓存、必须重新验证、过期日期为过去)就可以了,但为了确保浏览器每次都会下载您的动态 js,我使用类似<script type="text/javascript" src="/data.js?dynamic=$some_random_value"></script>. 您可以dynamic在生成脚本时忽略此参数,但浏览器不会忽略它并会发出新请求——这正是我们想要的。

然而,我相信实现你的目标不值得这样的工作。@Shady 的回答对你来说已经足够了。

于 2013-07-08T08:37:49.157 回答