Передайте php var в функцию jQuery - PullRequest
0 голосов
/ 28 марта 2012

Как передать переменную в php-файле, который загружается на страницу (DOM), в функцию jQuery ??

Я пробовал разные методы при поиске в Интернете, но я не понялкак их правильно использовать.

Мне нужно, чтобы var navHeaderTitle передавался в функцию обратного вызова jQuery load (), чтобы он устанавливал HTML-тег #navHeaderTitle в переменную, вызываемую в файле php.

Спасибо за помощь.

php:

<?php
$con = mysql_connect("localhost","user","pw");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db", $con);
$result = mysql_query("SELECT * FROM some_list");

$navHeaderTitle = "MY NEW TITLE";//<--I NEED 2 INJECT THIS!!

while($row = mysql_fetch_array($result))
{
echo "<div id='navItem' title='$navHeaderTitle'>";
echo "<h1>" . $row['label'] . "</h1>";
echo "<h2>" . $row['title'] . "</h2>";
echo "<p>" . $row['description'] . "</p>";
echo "</div>";
}
mysql_close($con);
?>

JavaScript в HTML-главе:

<script type="text/javascript">

    var navHeaderTitle = '';

    $(document).ready(  
        function() {
            $("#navContent").load('http://url/my_list.php', function() {
            $('#navHeaderTitle').text($(html).find('div#navItem').attr('title'));//<--GET THE VAR FROM LOADED PHP FILE!!
            }); 
        });
</script>
<body>
<div id="navPanel">

            <div id="navHeader">
                <img src="images/ic_return.png" style="float: left;"/>
                <img  id="listSortBtn" src="images/ic_list_sort.png" style="float: right;"/>
                <h4 id="navHeaderTitle"></h4>//THIS IS WHAT NEEDS THE VAR DATA!!
            </div>

            <div id="navScrollContainer" class="navContentPosition">
                <div id="navContent">HTML CONTENT from PHP GETS DUMPED IN HERE</div>
            </div>

        </div>
</body>

Я пытался использовать это, но не уверен, как:

$.get('scripts/my_list.php', {}, function(data){ 
                   data = split(':'); 
                })

Ответы [ 3 ]

2 голосов
/ 28 марта 2012

Я хотел бы, чтобы php-файл возвращал объект json, который состоит из двух частей: html, который вы хотите отобразить, и заголовка, который вы хотите использовать.

Тогда я бы использовал .ajax() функцию jQuery вместо .load() чтобы получить возвращаемое значение из вашего php-скрипта в переменной javascript, а не выводить его напрямую, как это делает .load().

1 голос
/ 28 марта 2012

Было бы чётче передать переменную в пользовательский атрибут (data-var), а затем извлечь его шириной. JQuery

$(some_element).attr("data-var");

Ненавижу связывать свой код JS с php.

1 голос
/ 28 марта 2012

заменить echo("$navHeaderTitle"); на

echo("<script> var navHeaderTitle = $navHeaderTitle </script>");

и удалите var navHeaderTitle = ''; из скрипта <head>.

, которая установит переменную JS так, как вы используете, но вы должны сделать это до того, как код в <head> загрузит ...

EDIT

хорошо, не echo("$navHeaderTitle"); вы можете поместить его в HTML как:

echo "<div id='navItem' title='$navHeaderTitle'>";

тогда в JS вы можете сделать:

<script type="text/javascript">
    var navHeaderTitle = '';

    $(document).ready(  
        function() {
            $("#navContent").load('http://url/my_list.php', function(response) {
                $('#navHeaderTitle').text($(response).attr('title'));
            }); 
        });
</script>

вот демоверсия jsfiddle: http://jsfiddle.net/JKirchartz/hdBzF/ (используется фиддл /echo/html/, поэтому в загрузке есть некоторые дополнительные вещи для эмуляции ajax)

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