<head>
        function fusioncharts(画图){ {
                $.ajax(data_from_url:"php_for_data.json"
        }
</head>
<body>
        <form action="echo.php">
                <select>xxx</select>
        </form>
        <div>画所在的div</div>
</form>
</body>
大致意思就是用户在这个html页面提交一个select选择的值,按照这个值生成一份php_for_data.json数据给fusioncharts画图。画到当前html页面的div位置。php_for_data.json、echo.php、当前html页面这3者之间执行的顺序应该是怎么样啊?
html提交数据到echo.php, html要画图需要调php_for_data.json里面的数据,这两部我怎么也关联不起来啊。请教一下这种情况下,一般是用什么方法来弄的?JavaScriptjqueryPHP

解决方案 »

  1.   

    想多了吧,直接提交到echo.php,返回的数据就是你打算写到php_for_data.json的数据不就结了。
      

  2.   


    主要是我学js不够系统,相当于是需要用什么就查什么学什么的那种。。所以有很多东西都不了解。
    我当前知道的知识是:form提交后整个页面都会转到echo.php里面去,所以要是要重新展示这个html,我就在echo.php里面
    echo "<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"1;url=$newurl\"></head></html>";
    由于有了这部分内容,就会影响到json数据的返回。并且要是我这么做的话, 这几个文件执行的顺序就更乱了,所以我现在是越想越糊涂了。“直接提交到echo.php,返回当前的html页面,并且返回的数据就是你打算写到php_for_data.json的数据,”,这一步我该如何做?
      

  3.   

    你看下那个ajax方法,应该有个当数据返回成功后执行的方法,吧你的画图的功能写在这个方法里试试
      

  4.   

    html提交数据到echo.php 这个动作,是form.submit(),会导致页面提交的,整个页面会被销毁啊,js,ajax,div,select什么的,都在提交后被销毁了,你的要求很混乱哦如果你既要绘图,又要调用 echo.php 通知服务器,应该做两次ajax请求$.ajax({
    url:"php_for_data.json",
    dataType:"json",
    success:function(){
    //往div里画
    });
    $.ajax({
    url:"echo.php",
    data:{selectedValue: $("select").val()},
    dataType:"这里随便了",
    success:function(){
    //成功向 echo.php 发送了请求
    })
      

  5.   


    并不是一定要用提交,只不过我学得太零散,目前就知道这一种把用户选择的值传给php的方式,其实我主要想实现的,仅仅只是“用户选择某些值后,根据这些值生成一份json数据,给fusioncharts画图”这样而已。。只不过所学有限,不知道该用啥办法, 最终就用了很麻烦的办法,还没办法解决
      

  6.   

    <select onchange="callServerPhp()"></select>
    function callServerPhp(){
    $.ajax({
    url:"echo.php",
    data:{selectedValue: $("select").val()},//这里是将选中项发送到服务器端,服务器端通过 request["selectedValue"] 得到值
    dataType:"json",
    success:function(rtnData){
    //rtnData 应该是一个json,你用 php 传回的 json 格式字符串
    fusioncharts(rtnData);
    })
    }帮你整理好了,你看看看得懂不
      

  7.   


    看懂了,实验成功了, 确实是把数值传到了php,不过我php是用$_GET["xxx"]接收到了。