PHP / JS:使用js函数发布输入值并通过php回显

时间:2012-07-13 06:36:39

标签: php javascript jquery ajax

我的目标是让输入字段显示最新值并输入。在用户停止输入并发布后两秒钟,js函数将获取输入框的值。问题似乎是php没有回显输入框的值。当我拿出js函数并使用强制刷新的按钮时 它工作正常。为什么php没有采用js函数发布的值?

Example SITE

JS

            <script type="text/javascript">
            $(document).ready(function() {
                                    var timer;
                                        $('#video-input1').on('keyup', function() {
                                            var value = this.value;

                                            clearTimeout(timer);

                                            timer = setTimeout(function() {

                                                //do your submit here
                                                $("#ytVideo").submit()

                                                //alert('submitted:' + value);
                                            }, 2000);
                                        });


                 //then include your submit definition. What you want to do once submit is executed
                  $('#ytVideo').submit(function(e){
                       e.preventDefault(); //prevent page refresh
                       var form = $('#ytVideo').serialize();
                       //submit.php is the page where you submit your form
                       $.post('index.php', form, function(data){ 

                       });
                      return false;

                  }); 


            });
            </script>

PHP

<?php

    if($_POST)
    {
        $url     = $_POST['yurl'];


        function getYoutubeVideoID($url) {
            $formatted_url = preg_replace('~https?://(?:[0-9A-Z-]+\.)?(?:youtu\.be/| youtube\.com\S*[^\w\-\s])([\w\-]{11})      
                    (?=[^\w\-]|$)(?![?=&+%\w]*(?:[\'"][^<>]*>| </a>))[?=&+%\w-]*~ix','http://www.youtube.com/watch?v=$1',$url);
            return $formatted_url;
        }
        $formatted_url = getYoutubeVideoID($url);
        $parsed_url = parse_url($formatted_url);




        parse_str($parsed_url['query'], $parsed_query_string);
        $v = $parsed_query_string['v'];

        $hth        = 300; //$_POST['yheight'];
        $wdth       = 500; //$_POST['ywidth'];
        $is_auto    =   0;


//Iframe code with optional autoplay

echo htmlentities ('<iframe src="http://www.youtube.com/embed/'.$v.'" frameborder="0" width="'.$wdth.'" height="'.$hth.'"></iframe>');

}
?>

形式

<html>
    <form  method="post" id="ytVideo" action="">
    Youtube URL:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input id="video-input1" type="text" value="<?php $url ?>" name="yurl">   
    <input type="submit" value="Generate Embed Code" name="ysubmit">
    </form>
</html>

1 个答案:

答案 0 :(得分:0)

这是因为你没有在任何地方返回你的php结果。它只是丢失了......

$.post('index.php', form, function(data){ 
    var x = $(data);
    $("body").html(x);
});