0

美好的一天,伙计们。因此,我正在尝试制作这个简单的jQuery程序,该程序只有在更改选择值时就会触发功能。一旦我让它工作,我计划在更复杂的程序中使用这个简单的功能。

这是代码(它来自 jQuery API 网站,我稍作修改以尝试我想要发生的事情):

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>change demo</title>
    <style>
        div {
        color: red;
        }
    </style>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>

    <select id="selector" name="sweets">
        <option>Chocolate</option>
        <option selected="selected">Candy</option>
        <option>Taffy</option>
        <option selected="selected">Caramel</option>
        <option>Fudge</option>
        <option>Cookie</option>
    </select>
    <div></div>

    <script>
    $( "#selector" )
        .on('change',(function () {
            $( "select option:selected" ).each(function() {
                <?php header("Location:jcue.php")?>
            });
        })
        .change();
    </script> 
</body>
</html>

我想要发生的是,页面应该只重定向到 jque.php 一旦选择输入值已更改。但是程序中发生的事情是它自动重定向到另一个页面,甚至没有加载当前页面本身。有什么问题?jQuery 和 Javascript 是我在 web 编程中未开发的领域,我知道这对许多 web 程序员来说是非常基础的,但我只是需要它(我真的必须开始学习 Javascript、AJAX 和 jQuery,当我有空闲时间哈哈)。

我将使用它的复杂程序是搜索结果过滤程序。但在我能做到这一点之前,我必须让这个简单的程序运行起来。

有谁能够帮我?谢谢你。答案将不胜感激。

4

4 回答 4

3

试试这个::

$(function() {
    $("#selector").change(function() {
        location.href = "jcue.php";
    });
});

这将解决您的问题。

于 2013-08-19T16:20:49.897 回答
1

问题是因为您的 PHP 在页面加载后立即执行 - 您无法将其合并到 javascript 中。此外,您不需要each()在处理程序内。试试这个:

$("#selector").on('change',(function () {
    window.location.assign('jcue.php');
});
于 2013-08-19T16:21:26.613 回答
1

JavaScript 是客户端脚本,而 PHP 是服务器端。您正在尝试触发 PHP 标头重定向,该重定向应该在服务器时间发生,然后再发送到客户端的浏览器。因此,这在更改事件中不起作用。

只需使用:

$("#selector").change(function() {
    window.location = "jcue.php"; //this can be URL as well
});

PS我注意到你有两个“选择”选项,介意告诉为什么?

于 2013-08-19T16:22:20.090 回答
0

不太好的做法:使用 Javascript 重定向,因为 JS 可以被阻止

有一些语法错误,这是一个修复,只需替换您的代码。

$( "#selector" ).on('change',(function () {
    var str = "";
    $( "select option:selected" ).each(function() {
        window.location.replace("http://stackoverflow.com");
    });
}));

良好实践:使用 jquery ajax 请求Jquery Ajax或使用标准php 标头函数重定向(必须在加载 html/js 之前运行)

祝你好运,学习编程。好有趣!

于 2013-08-19T16:29:47.490 回答