2013-12-04 6 views
-1

Привет, я изо всех сил, чтобы найти решение в течение нескольких часов и интересно, если вы, ребята могли бы помочь мне у меня есть index.php, который похож на этотДоступ переменной PHP Использование JavaScript

<?php include_once"connect.php";?> 
<!DOCTYPE HTML> 
<html> 
<head> 
.... 
<style> 
    .... 
</style> 
<!--- AJAX ---> 
<script> 
    function showData(str) 
    { 
     if (str=="") 
     { 
      document.getElementById("txtHint").innerHTML=""; 
      return; 
     } 
     if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
     } 
     else 
     {// code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange=function() 
     { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
       document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
      } 
     } 
     xmlhttp.open("GET","getData.php?q="+str,true); 
     xmlhttp.send(); 
    } 
</script> 
<body> 
    <form> 
     <select name="users" onchange="showData(this.value)"> 
      <option value="">---Select Project---</option> 
      <?php 
       // query projects 
       $query_pr=mysql_query("SELECT * FROM GeneralInfo"); 
       // get project names and its corresponding revision number 
       while($pr=mysql_fetch_assoc($query_pr)){ 
        echo '<option value="'.$pr['pRevNum'].'">'.$pr['pName'].'</option>'; 
       } 

      ?> 

     </select> 
    </form> 
    <br> 
    <div id="container" align="right"></div> 
    <script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.7.4.min.js"></script> 
    <script defer="defer"> 
    // FUTURE USE php variable within KineticJS HERE 
    ....  
    </script> 
</body> 

мой код отлично работает с вызовом getData.php после выбора одного из значений параметра в соответствии с моей базой данных. Также я использую ajax для получения соответствующих данных каждого значения параметра. Ниже приводится getData.php

<?php 
    // get the data corresponding with the selected option 
$q=intval($_GET['q']); 

// establish connection 
... 
// select the database 

    // query here 
$query ="SELECT DISTINCT BranchInfo.bName, BranchInfo.bRevNum, GeneralInfo.pName, GeneralInfo.pRevNum,BranchItemInfo.bIName, BranchItemInfo.bIRevNum 
     FROM `GeneralInfo` 
     INNER JOIN `BranchInfo` 
     ON GeneralInfo.bName=BranchInfo.bName 
     AND GeneralInfo.bRevNum=BranchInfo.bRevNum 
     INNER JOIN `BranchItemInfo` 
     ON BranchInfo.bIName=BranchItemInfo.bIName 
     AND BranchInfo.bIRevNum=BranchItemInfo.bIRevNum 
     AND GeneralInfo.pRevNum= '".$q."'"; 

// initialize variable with the query 
$result = mysqli_query($connection,$query); 

echo "<table border='1'> 
<tr> 
<th>bName</th> 
<th>bRevNum</th> 
<th>bIName</th> 
<th>bIRevNum</th> 
<th>pName</th> 
<th>pRevNum</th> 
</tr>"; 

$my_arr=array(); 
// fectching data into array 
while($info = mysqli_fetch_array($result)) 
{ 
    echo "<tr>"; 
    echo "<td>" . $info['bName'] . "</td>"; 
    echo "<td>" . $info['bRevNum'] . "</td>"; 
    echo "<td>" . $info['bIName'] . "</td>"; 
    echo "<td>" . $info['bIRevNum']."</td>"; 
    echo "<td>" . $info['pName'] . "</td>"; 
    echo "<td>" . $info['pRevNum'] . "</td>"; 
    echo "</tr>"; 
} 

// close connection 
... 
?> 

На данный момент все данные, которые мне нужно отображение в виде таблицы на моей странице. Я хочу получить доступ к переменным в getData.php (например, $ info ['bIRevName']) и использовать его в javascript внутри моего index.php. Я пробовал это в своем index.php

<script> 
     var myvar= <?php echo $info[bIRevNum];?>"; 
</script> 

, и это не работает. Есть ли достаточный способ сделать это? Цените все свои возможности!

Большое спасибо!

Я понял, что когда я создаю переменную php внутри моего index.php, скрипт работает. Но если я создаю php-переменную в getData.php, скрипт не смог бы получить доступ к этой переменной. Есть ли решение для этого?

+0

'getJSON' означает, что вы должны вернуть JSON отформатированные данные. – leaf

+0

Просто используйте AJAX. И, пожалуйста, не используйте mysql_ * Иногда вы вводите mysql, и иногда вы вводите mysqli. – Jonast92

ответ

0

попробовать что-то вроде этого:

<div class="hidden"><?php echo $info[bIRevNum];?></div> 

А потом взять информацию с:

$("div.hidden").text(); 

Или без JQuery ...

document.querySelector("div.hidden").innerText; 

Что возвращает, что PHP-код? возвращает ожидаемые данные?

+0

То же самое, что я ответил на «martynas». если я создаю переменную php в моем getData.php. Мой скрипт в index.php не смог получить к нему доступ. Он должен находиться в том же файле, чтобы получить к нему доступ. Есть ли способ справиться с этим? – user3063604

0

Peasy Easy

<script type="text/javascript"> 
..... 
var some_variable = <?php echo $phpVar; ?>; 
..... 
</script> 

Существует ошибка синтаксиса в коде, который вы пробовали. Если предположить, что значения, содержащиеся в переменном является числом, то я предлагаю вам попробовать это:

<script> 
     var myvar = <?php echo $info[bIRevNum];?>; 
</script> 
+0

Я действительно создал переменную php внутри моего index.php, скрипт для вызова этой переменной также находится в index.php, и он работает. Однако, если я создаю переменную php в моем getData.php, мой скрипт все еще находится в index.php и не может вызвать эту переменную. Есть ли способ справиться с этим? – user3063604

0

Если ваши принимают имя переменного, как «$ Информации» это не будет работать.

Изменение $info к $somethingelse ... Надеюсь, что это работает для вас ...

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