需要语法将jquery填充的字段值传递给下一个表单

时间:2012-03-22 19:46:15

标签: php jquery html

我将jquery提前输入自动完成脚本合并到现有的搜索页面中,该页面由2个下拉自动提交搜索框组成。那些自动提交使用onchange完成并且它们是自引用的。一旦用户在第一个下拉列表中选择了该类别,则返回的页面随着第二个下拉列表填充了越来越多的选项。使用以下代码提交的页面;

<form name="nav"><select name="platform" id="platform" onChange="document.location.href=document.nav.platform.options[document.nav.platform.selectedIndex].value">

在用户选择第一个下拉列表完成后,页面返回到自身并缩小第二个下拉列表的结果。问题是第二次下降对用户来说太大了。

在不知道jquery的情况下,我已经能够将自动完成脚本类型移植到现有的搜索表单中,以替换第二个下拉列表。但是,我无法弄清楚如何将jquery搜索的值转发到同一页面以让php语句执行它。

以下jquery使用我需要继承的记录的id填充第二个字段。这是来自jquery的函数;

<script type="text/javascript">
function lookup(inputString) {
    if(inputString.length == 0) {
        // Hide the suggestion box.
        $('#suggestions').hide();
    } else {
        $.post("rpc.php", {queryString: ""+inputString+""}, function(data){
            if(data.length >0) {
                $('#suggestions').show();
                $('#autoSuggestionsList').html(data);
            }
        });
    }
} // lookup

function fill(thisValue) {
    $('#inputString').val(thisValue);
    setTimeout("$('#suggestions').hide();", 200);
}
</script>

这是页面底部的html,最后包含我需要的记录的id。

<div>
    <form name="dash3.php">
        <div>
            Start typing the name of the item, select the correct title when it appears:
            <br />
            <input type="text" name="papa" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
            <input type="hidden" value="?list=1" />
        </div>

        <div class="suggestionsBox" id="suggestions" style="display: none;">
            <img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
            <div class="suggestionList" id="autoSuggestionsList">
                &nbsp;
            </div>
        </div><input type="submit" value="Submit">
    </form>
</div>

坐在页面顶部的php正在寻找这个来触发添加;

if ($_GET['list']==1) {

我需要设置'list'等于1(你可以看到我用隐藏的输入尝试了)和名为$ vid的php变量设置为jquery类型提前结果的内容,这样提交按钮将带有值向前,PHP脚本将执行添加。我已经尝试过隐藏的字段,我已经尝试将jquery一起移植到一起,但我在java或jquery中没有坚实的基础,我想不出另一种方法来做到这一点。我对每个请求都有了进一步的了解,我希望我能够很好地解决这个问题,以便能够实现这一目标!非常感谢。

1 个答案:

答案 0 :(得分:0)

乍一看,看起来你正在使用模糊的空值更新“inputString”输入?您尚未将任何内容传递给“填充”功能。

JQuery提供了简单的事件处理程序,可以将该部分清理干净。

$(function(){ // <--This waits until load to initialize handlers
    $("#inputString").blur(function(){
        alert($(this).val());
    });
});