Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.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中的jQuery Ajax和POST方法_Php_Jquery_Ajax - Fatal编程技术网

PHP中的jQuery Ajax和POST方法

PHP中的jQuery Ajax和POST方法,php,jquery,ajax,Php,Jquery,Ajax,我有两个文件basic.php和pptimeline.php。这里的目的是从basic.php中的组合框中选择一个值,在pptimeline.php中处理它,然后在basic.php中打印回来。但我没有成功地做到这一点。如果有人能帮忙,我很感激 编辑:pptimeline.php文件充当json文件头'Content-Type:application/json';。它只有我在文件中回显的查询,但在这里不相关,因为如果我在查询中使用默认值而不是$nprocess,那么一切都可以正常工作。显示我的数

我有两个文件basic.php和pptimeline.php。这里的目的是从basic.php中的组合框中选择一个值,在pptimeline.php中处理它,然后在basic.php中打印回来。但我没有成功地做到这一点。如果有人能帮忙,我很感激

编辑:pptimeline.php文件充当json文件头'Content-Type:application/json';。它只有我在文件中回显的查询,但在这里不相关,因为如果我在查询中使用默认值而不是$nprocess,那么一切都可以正常工作。显示我的数据的代码位于basic.php中的suces:参数内。如果我移除它周围的东西,一切都很好,但它不会根据我的选择而改变

Basic.php

<label for="Process"> NProcess : </label>
<select id="cproc">
  <?php
foreach ($products as $res3)
    {echo "<option value='".$res3["PROCESSO"]."'>".$res3["PROCESSO"]."</option>";}
    ?>
    </select>
<script type='text/javascript'> 
    $("#cproc").on("change", function(){
        var v1 = $(this).val();
        $.ajax({
            url: "pptimeline.php", 
            type: "POST", 
            data: {'value' : v1}, 
            success: function(response){

            /**DISPLAY DATA IN INTERFACE**/
             var tg1 = {};
    $(function () { 
        // jQuery widget implementation
        // with some basic options
        tg1 = $("#placement").timeline({
                "min_zoom":1, 
                "max_zoom":55, 
                "image_lane_height":100,
                "icon_folder":"timeglider/icons/",
                "data_source":"pptimeline.php",
                "constrain_to_data": false
        });
        tg_actor = tg1.data("timeline");
        // You'll use tg_actor as the key to access 
        // public API methods like "goTo", etc.         
    }); // end document-ready
                      /****/

   }, error: function(x,y,z){
                alert("error"); } }); }); 
</script>
您的$.ajax调用是不必要的。删除它,只需将所选值添加到.timeline数据源中即可-


这是完整的pptimeline.php文件吗?我看不到您在哪里执行查询或返回任何结果。另外,您应该绑定该值,而不是直接使用post参数;。它只有我在文件中回显的查询,但在这里不相关,因为如果我在查询中使用默认值而不是$nprocess,那么一切都可以正常工作。显示我的数据的代码位于basic.php中的suces:参数内。如果我删除了它周围的内容,一切正常,但它不会根据我的选择而改变{.您在$.ajax中发布的值没有保留。您可以将其保存为$会话变量,或者将其附加到数据源url中。suces:中的代码只是在屏幕上显示在pptimeline.php中处理的数据。我看不出将我在组合框中选择的变量通过POST Method当您调用$.ajax时,它会将数据:{'value':v1}发布到url:pptimeline.php。但是当您到达tg1=$placement.timeline{…并且当它调用data_source:pptimeline.php时,没有发布的值,所以如果设置为$\u POST['value']{将为false,这将导致您的问题。发布的数据不是持久的,因此您需要将其永久化,或者在第二次调用页面/脚本时将其发送。
if (isset ($_POST['value'])) {
    $nprocesso = $_POST['value'];

$query1 = "SELECT TO_CHAR(DATACRIACAO,'YYYY-MM-DD') AS DATACRIACAO, NPROCESSO, 
BLOCOOPERATORIO, TIPOINTERNAMENTO, TIPOINTERNAMENTOCIRURGIA, GLASGOW_HOSPITAL 
FROM PATIENT_TIMELINE_ADMISSAO WHERE NPROCESSO =".$nprocesso."";
}
<script type='text/javascript'> 
    $("#cproc").on("change", function(){
        var v1 = $(this).val();
        var tg1 = {};
        $(function () { 
            // jQuery widget implementation
            // with some basic options
            tg1 = $("#placement").timeline({
                "min_zoom":1, 
                "max_zoom":55, 
                "image_lane_height":100,
                "icon_folder":"timeglider/icons/",
                "data_source":"pptimeline.php?value="+v1, //add select value to url
                "constrain_to_data": false
            });
            tg_actor = tg1.data("timeline");
            // You'll use tg_actor as the key to access 
            // public API methods like "goTo", etc.         
        }); // end document-ready
    }); 
</script>
if (isset ($_GET['value'])) {
    $nprocesso = $_GET['value']; //make sure to sanitize value to prevent SQL injection

    $query1 = "SELECT ... NPROCESSO =".$nprocesso."";
}