2015-05-04 2 views
1

Как отправить значение переменной из PHP в Javascript с помощью Ajax? Ниже приведен код JS и PHP кодКак отправить переменную в Javascript из PHP?

PHP код:

<?php 
    $username = "trainerapp"; 
    $password = "password"; 
    $hostname = "localhost"; 
    $link = @mysql_connect($hostname, $username, $password); 

    if(@mysql_select_db("trainer_registration")) 
    { 
     echo "Connected Successfully"; 
    } 
    else 
    { 
     echo "Connection Error"; 
    } 



    $select_query_num = @mysql_query("select id,program_name,company,date_prog from program_details"); 
    $num_rows = @mysql_num_rows($select_query_num); 
    for ($i = 0; $i <= $num_rows; $i++){ 
      $id = $_POST["idjs"]; 
      $pgmname = $_POST["pgmnamejs"]; 
      $comp = $_POST["compjs"]; 
      $datephp = $_POST["datephpjs"]; 
     $select_query = @mysql_query("select id,program_name,company,date_prog from program_details where id = $i"); 
     $fetch_query = @mysql_fetch_assoc($select_query); 
     $id = $fetch_query['id']; 
     echo $id; 
     $pgmname = $fetch_query['program_name']; 
     echo $pgmname; 
     $comp = $fetch_query['company']; 
     echo $comp; 
     $datephp = $fetch_query['date_prog']; 
     echo $datephp; 

     } 
?> 

JS код:

window.onload = function createdivs() { 
     var id; 
     var pgmname; 
     var comp; 
     var datephp; 
     var i = 1; 
     for (;i < 10;i++) 
     { 
      div = "<div>.display"; 
      var list = document.createElement("div"); 
      document.getElementById('fulldisplay').appendChild(list); 
      list.className = "container content-rows"; 
     } 
     $.ajax({ 
     url:'displaycontent.php', 
     data:{idjs:id, pgmnamejs:pgmname, compjs:comp, datephpjs:datephp}, 
     type:'POST', 
     success:function(retval){ 
     alert(retval); 
     } 
    }); 

    } 

Вопросы:

В JS-код, для каждого приращения вар я, я необходимо сделать вызов Ajax в PHP-файл, который должен вернуть первый массив значений, а второй и т. д. Я действительно путаюсь, как это сделать. Объяснение будет лучше. По приведенному выше коду я получаю только последнее значение массива с неопределенной ошибкой индекса.

+0

Тарс - прекрасная причина рассмотреть возможность использования angularjs imho. – Felype

+0

Можете ли вы объяснить, как это можно сделать в angularjs? пример кода будет достаточным .. –

+0

Пожалуйста, объясните в каком-то примере, вы вызываете js на window.onload (после полной загрузки страницы), почему бы не напрямую вызвать PHP на загрузку страницы? – parveen

ответ

0

Если это не формальная работа, то просто эхо HTML в скрипте php.

$select_query = @mysql_query("select id,program_name,company,date_prog from program_details where id = $i"); 
$fetch_query = @mysql_fetch_array($select_query. MYSQL_NUM); 
list($id, $pgname, $comp, $datephp) = $fetch_query; 
echo " 
    <div> 
    $id $pgname $comp $datephp 
    </div> 
"; 
0

Я не эксперт PHP, но кажется, что вы должны иметь что-то вроде:

echo '<script type="text/javascript">'; 
// bunch of: 
echo ' var myvar = ' + $fetch_query['myvar'] + ';'; 
// probably use a proper way to escape those things 
echo '</script>'; 

или что-нибудь, что создает небольшую глобальную доступную версию ваших переменных PHP ...

лучший способ бытия:

  • есть REST API, обеспечивающий ваши данные в формате JSON или что вы любите
  • используйте!

Я видел комментарий о angularjs, потратив некоторое время, используя подходящую структуру javascript, не тратя время на свое время IMO!

0

Вы должны использовать JSon закодировать на результатах, которые приходят от $ select_query, то вы можете использовать Ajax, чтобы получить, что приводит в JavaScript

//echo the json_encode in php to see the results 
json_encode($select_query) 

//do ajax with jquery 
$.ajax({ 
    url: 'the page that has the $select_query which brings the results', 
    type: 'POST', 
    dataType: 'json', 
    data: data, 
    succes: function(data){ 
       console.log(data); 
    } 
}); 

Теперь вы можете манипулировать данными, как вы хотите.

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