Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从PHP向Javascript发送变量?_Javascript_Php_Ajax_Json - Fatal编程技术网

如何从PHP向Javascript发送变量?

如何从PHP向Javascript发送变量?,javascript,php,ajax,json,Javascript,Php,Ajax,Json,如何使用Ajax将变量值从PHP发送到Javascript?下面是JS代码和PHP代码 PHP代码: <?php $username = "trainerapp"; $password = "password"; $hostname = "localhost"; $link = @mysql_connect($hostname, $username, $password); if(@mysql_select_db("trainer_registra

如何使用Ajax将变量值从PHP发送到Javascript?下面是JS代码和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);
        }
    });

    }
window.onload=函数createdivs(){
变量id;
var-pgmname;
var-comp;
var-datephp;
var i=1;
对于(;i<10;i++)
{
div=“.display”;
var list=document.createElement(“div”);
document.getElementById('fulldisplay').appendChild(列表);
list.className=“容器内容行”;
}
$.ajax({
url:'displaycontent.php',
数据:{idjs:id,pgmnamejs:pgmname,compjs:comp,datephpjs:datephp},
类型:'POST',
成功:函数(retval){
警报(retval);
}
});
}
问题:


在JS代码中,对于VARI的每一个增量,我都需要对PHP文件进行Ajax调用,该文件将返回第一个值数组,第二个值数组,依此类推。我真的不知道该怎么做。最好有个解释。通过上面的代码,我只得到最后一个带有未识别索引错误的数组值。

如果这不是一个正式的工作,那么只需在php脚本中回显HTML即可

$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>
"; 
$select\u query=@mysql\u query(“从程序详细信息中选择id、程序名称、公司、日期、进度,其中id=$i”);
$fetch\u query=@mysql\u fetch\u数组($select\u query.mysql\u NUM);
list($id、$pgname、$comp、$datephp)=$fetch\u query;
回声“
$id$pgname$comp$datephp
"; 

我不是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>';
echo';
//一堆:
echo'var myvar='+$fetch_query['myvar']+';';
//可能用一种合适的方法来逃避这些事情
回声';
或者任何构建php变量的小型全局可访问版本的东西

最好的办法是:

  • 使用RESTAPI以json或任何您喜欢的格式提供数据
  • 用它

我看到了关于angularjs的评论,在我看来,花点时间使用合适的javascript框架绝对不是浪费时间

您需要对来自$select_查询的结果使用json编码,然后可以使用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);
    }
});

现在你可以根据需要操纵数据。

thar是考虑使用盎格鲁JS IMRO的一个完美的原因。你能解释一下如何在盎格鲁JS中实现这一点吗?一个示例代码就足够了。请用一些例子解释一下,您正在window.onload上调用js(在页面完全加载之后),为什么不在页面加载上直接调用PHP呢?是的,AngularJS。。。让我们去用火箭筒杀死那只苍蝇。或者使用echo“var abc=”$身份证件""; 其他变量@VigneshAnandakumar也一样