Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
295 views
in Technique[技术] by (71.8m points)

javascript - passing variable - Undefined index error

I want to pass path variable from js to plus-page.php and then go to that page.

 $("#btnpage").click(function(){
        path = $('#spantwrap').html();
        console.log(path); // works, that's a simple html code.
        $.ajax({
            url: 'plus-page.php',
            type: 'post',
            data: {'path': path},
            success: function() {
                console.log(path);
            }
        });
    location.href = 'plus-page.php';
    });

plus-page.php

<form id="form1" action="?" method="post">    
<input type="hidden" name="path" value="<?php echo $_POST['path'];?>" // line 46
</form>

Error: Undefined index: path on line 46...

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The problem is that you're redirecting immediately, and not passing along the variable in the redirection. Since you redirect immediately, the ajax call that's in-progress never really gets started and is terminated almost immediately.

Just remove your ajax call entirely and set the location like so:

location.href = "plus-page.php?path=" + encodeURIComponent(path);

...and use $_GET['path'] instead of $_POST['path'].

Alternatively, if you really want to do the ajax call first, wait for it to complete before going to the new page:

$.ajax({
    url: 'plus-page.php',
    type: 'post',
    data: {'path': path}, // Side note: The ' here are unnecessary (but harmless)
    success: function() {
        location.href = 'plus-page.php'; // You might or might not add path here as
                                         // above, it's unclear why you'd do the
                                         // ajax then redirect
        console.log(path);
    }
});

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...