【问题标题】:How to update select boxes with php mysql jquery ajax如何使用 php mysql jquery ajax 更新选择框
【发布时间】:2016-01-21 03:54:22
【问题描述】:

正如标题所说,我正在尝试更新选择框。但这对我不起作用。

我的 HTML:

<div class="col-sm-3">
    <select class="form-control" id="answer9">
        <option value="00">Select</option>
        <option value="0">0 - No Problems</option>
        <option value="1">1 - Some Problems</option>
        <option value="2">2 - Considerable Problems</option>
        <option value="3">3 - Severe Problems</option>
    </select>
</div>

JQuery 和 AJAX:

$('#fetch').click(function(){
    var nameid = parseInt($('#names').val());
    if(nameid == 0){
        $('#showerr').html("Please Select an Client").show().delay(3000).fadeOut("slow");
        $('#names').focus();
        return false;
    }
    $.ajax({
            url         : 'wsevaluationresult.php',
            type        : "POST",
            datatype    : "JSON",
            data        : {
                            'editvalues'    : 1,
                            'id'            : nameid
            },
            success:function(re){
                $('#answer9').val(show.answ9);
            }
    });
});

PHP 和 MySQL:

if(isset($_POST['editvalues'])) {
    $stmt = $db->prepare('SELECT clientid, answ9
                            FROM evals 
                            WHERE a.memberid = :memberid 
                            AND clientid = :id');
    $stmt->bindValue(':memberid', $_SESSION["memberid"], PDO::PARAM_INT);
    $stmt->bindValue(':id', $_POST['id'], PDO::PARAM_INT);
    $stmt->execute();
    $result = $stmt->fetchAll();
        foreach($result as $row) {
        header("Content-type: text/x-json");
        echo json_encode($row);
        }
    exit();
}

我在这里找到了一些关于 SO 的建议,但没有一个真正解决这个问题。我想要的只是让选择框反映来自数据库的 answ9 值。当我使用文本框时,我执行ajax 的方式对我有用。但是选择框是另一回事。任何帮助表示赞赏。谢谢。

【问题讨论】:

  • 你想点击标有$('fetch')的什么?
  • $('fetch') 这是一个标签吗?如果是ID,则可能需要添加#,如果是类,则需要添加.
  • 您到底想做什么?因为首先您正在处理单击某个不存在的标记名称的事件,并且您正在从某个名称字段以 ajax 传递数据并处理 php 文件中的数据,然后在您尝试对不存在的字段执行操作之后表单元素。例如您选择了 id answer9 的下拉菜单,并且在 javascript 代码中您正在处理 answer1。并让我知道您在 ajax 响应中得到的结果。
  • #names id 在哪里?就代码示例而言,这似乎非常不完整。
  • @roullie - 谢谢。我修复了 $('#fetch')

标签: php jquery mysql ajax


【解决方案1】:

试试这个:

替换为:

success:function(re){
    $('#answer9 option[value="'+re.answ9+'"]').attr('selected', 'selected');
}

在你的成功函数中,你得到像“re”这样的参数,那么答案必须是像“re.answ9”这样的东西。如果你的回答是正确的

【讨论】:

  • 我只是插上电源,什么也没得到。选择框停留在SELECT,而不是更改为数据库中的值。
  • 我明白了。在我的帖子中,在 PHP 和 MySQL 中,我从另一个将几个表连接在一起的页面复制了它。在我的帖子中,我有:WHERE a.memberid = :memberid。我从memberid 中删除了a.,效果很好。我想我需要休息一下。坚持了将近17个小时!谢谢你,贝吉塔。我很感激你。
  • 我是 JQuery 新手,非常感谢你刚刚教给我的东西。
  • 我在客户端询问。用成功替换你的成功函数:function(re){ alert(re); }
猜你喜欢
  • 2014-03-31
  • 2017-07-16
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
相关资源
最近更新 更多