Php 在选择框中存储选项值的正确方法

Php 在选择框中存储选项值的正确方法,php,jquery,html,forms,html-table,Php,Jquery,Html,Forms,Html Table,很抱歉发布一个已经发布的问题,但是我真的很难让这个功能正常工作。当我更改选择框选项值时,我希望它在页面刷新或注销时保持不变。我必须使用AJAX/PHP来实现这一点吗?我试过这么做,但没有用 我的代码如下所示: echo '<tr>'; echo '<td><input type="text" name="order_no[]" value="' . $row['Orderno'] . '"/></td>'; echo '<td

很抱歉发布一个已经发布的问题,但是我真的很难让这个功能正常工作。当我更改选择框选项值时,我希望它在页面刷新或注销时保持不变。我必须使用AJAX/PHP来实现这一点吗?我试过这么做,但没有用

我的代码如下所示:

echo '<tr>';
    echo '<td><input type="text" name="order_no[]" value="' . $row['Orderno'] . '"/></td>';
    echo '<td><input type="text" name="order_date[]" value="' . $row['Orderdate'] . '"/></td>';
    echo '<td><input type="text" name="order_ordered_by[]" value="' . $row['Orderedby'] . '"/></td>';
    echo '<td><input type="text" name="order_supplier[]" value="' . $row['Supplier'] . '"/></td>';
    echo '<td><input type="text" name="order_total_price[]" value="' . $row['totalprice'] . '"/></td>';
    echo '<td><input type="text" name="order_requested_by[]" value="' . $row['requestedby'] . '"/></td>';
    echo '<td>';
    echo '<select id ="id" name="id">';
    echo '<option value = "1" class = "pending">Pending</option>';
    echo '<option value = "2" class = "approved">Approved</option>';
    echo '<option value = "3" class ="disapproved">Disapproved</option>';
    echo '</select>';
    echo '</td>';
    echo '</tr>';
echo';
回声';
回声';
回声';
回声';
回声';
回声';
回声';
回声';
回声“待定”;
echo“批准”;
呼应“不赞成”;
回声';
回声';
回声';

您可以将选定的值存储在cookie中,看看插件


或者,如果您能够以某种方式识别用户,则可以将值存储在服务器上并立即渲染。但当您声明,即使在注销后,所选值也应保持不变时,您仍然需要cookie来存储一些标识令牌。

您可以将所选值存储在cookie中,请查看插件


或者,如果您能够以某种方式识别用户,则可以将值存储在服务器上并立即渲染。但是,当您声明,即使在注销后,所选值也应保持不变时,您仍然需要cookie来存储一些标识令牌。

只需执行以下jquery和ajax代码即可

$('#id').change(function(){
   var val = $('#id').val();
   $.ajax({
        type: 'POST',
        url: '',//url of the file
        data: val,
        success: function(msg){
      }
    });
});

只需执行以下jquery和ajax代码即可

$('#id').change(function(){
   var val = $('#id').val();
   $.ajax({
        type: 'POST',
        url: '',//url of the file
        data: val,
        success: function(msg){
      }
    });
});

上有一个很好的例子,它使用了自动完成框。IMHO比select下拉菜单好得多。 它具有所有AJAX功能,只需几行代码就可以得到一个工作示例:

<script>
    $(function() {
        $( "#birds" ).autocomplete({
            source: "search.php",
            minLength: 2,
            select: function( event, ui ) {
                log( ui.item ?
                    "Selected: " + ui.item.value + " aka " + ui.item.id :
                    "Nothing selected, input was " + this.value );
            }
        });
    });
    </script>

$(函数(){
$(“#鸟”).autocomplete({
来源:“search.php”,
最小长度:2,
选择:功能(事件、用户界面){
日志(ui.item?
“选定:”+ui.item.value+“aka”+ui.item.id:
“未选择任何内容,输入为”+this.value);
}
});
});

上有一个很好的例子,它使用了自动完成框。IMHO比select下拉菜单好得多。 它具有所有AJAX功能,只需几行代码就可以得到一个工作示例:

<script>
    $(function() {
        $( "#birds" ).autocomplete({
            source: "search.php",
            minLength: 2,
            select: function( event, ui ) {
                log( ui.item ?
                    "Selected: " + ui.item.value + " aka " + ui.item.id :
                    "Nothing selected, input was " + this.value );
            }
        });
    });
    </script>

$(函数(){
$(“#鸟”).autocomplete({
来源:“search.php”,
最小长度:2,
选择:功能(事件、用户界面){
日志(ui.item?
“选定:”+ui.item.value+“aka”+ui.item.id:
“未选择任何内容,输入为”+this.value);
}
});
});

听起来,所选状态应该是订单的一个属性。因此,当selectbox发生更改时,您应该对PHP(或任何服务器端语言)进行ajax调用,以更新状态。选择框本身应该类似于:

echo '<select id ="id" name="id">';
echo '<option value = "1" class = "pending"' . ($row['status'] == 'Pending' ? ' selected=selected' : '') . '>Pending</option>';
echo '<option value = "2" class = "approved"' . ($row['status'] == 'Approved' ? ' selected=selected' : '') . '>Approved</option>';
echo '<option value = "3" class ="disapproved"' . ($row['status'] == 'Disapproved' ? ' selected=selected' : '') . '>Disapproved</option>';
echo '</select>';
echo';
回声“待定”;
echo“批准”;
呼应“不赞成”;
回声';

我不认为cookies是必要的

听起来所选状态应该是订单的一个属性。因此,当selectbox发生更改时,您应该对PHP(或任何服务器端语言)进行ajax调用,以更新状态。选择框本身应该类似于:

echo '<select id ="id" name="id">';
echo '<option value = "1" class = "pending"' . ($row['status'] == 'Pending' ? ' selected=selected' : '') . '>Pending</option>';
echo '<option value = "2" class = "approved"' . ($row['status'] == 'Approved' ? ' selected=selected' : '') . '>Approved</option>';
echo '<option value = "3" class ="disapproved"' . ($row['status'] == 'Disapproved' ? ' selected=selected' : '') . '>Disapproved</option>';
echo '</select>';
echo';
回声“待定”;
echo“批准”;
呼应“不赞成”;
回声';


我不认为cookies是必要的

正如下面的回答所说,jQuery是你的朋友!正如下面的答案所说,jQuery是您的朋友!谢谢,当使用jQuery时,这在多台查看表的计算机上有效吗?在选择选项值以确保..时,我无法使cookie功能正常工作。。说“多台计算机”-你的意思是,一旦一个用户选择了一个值,你希望所有其他用户都看到该选择?您好,是的,这是正确的更改需要反映在不同的PC'sOk上,然后忘记cookie,您所需要的是根据您的答案更新数据库。顺便说一句,非常不寻常的要求..好的,谢谢,这样管理员就可以看到已批准、待定或未批准的订单。我想不出更好的办法来解决这个问题。谢谢谢谢,当使用jQuery时,在多台查看表的计算机上是否可以执行此操作?在选择选项值以确保..时,我无法使cookie功能正常工作。。说“多台计算机”-你的意思是,一旦一个用户选择了一个值,你希望所有其他用户都看到该选择?您好,是的,这是正确的更改需要反映在不同的PC'sOk上,然后忘记cookie,您所需要的是根据您的答案更新数据库。顺便说一句,非常不寻常的要求..好的,谢谢,这样管理员就可以看到已批准、待定或未批准的订单。我想不出更好的办法来解决这个问题。谢谢,我收到了一封意想不到的信在实现上,当我运行上述代码时,这是否是在我的页面上包含AJAX请求的正确方法$('#id').change(function(){var val=$('#id').val();$.ajax({type:'POST',url:'文件数据:val,success:function(msg){}}})@m1243这不是唯一的方法,但您当然可以这样做(另请参见和)。但是,数据参数需要作为键/值对传递,而不仅仅是作为值传递。所以像
data:{status:val}
这样的东西应该会起作用(或者至少可以让你走上正确的轨道),我收到了一个意外的“;”在实现上,当我运行上述代码时,这是否是在我的页面上包含AJAX请求的正确方法$('#id').change(function(){var val=$('#id').val();$.ajax({type:'POST',url:'文件数据:val,success:function(msg){}}})@m1243这不是唯一的方法,但您当然可以这样做(另请参见和)。但是,数据参数需要作为键/值对传递,而不仅仅是作为值传递。所以像
data:{status:val}
这样的东西应该可以工作(或者至少离g足够近)