【问题标题】:AJAX: Can't get input value after ajax success, undefinedAJAX:ajax成功后无法获取输入值,未定义
【发布时间】:2016-08-17 14:43:38
【问题描述】:

请帮忙,我正在尝试获取ajax成功后输入字段的值,我不知道为什么它总是未定义

ajax.js

$(document).on('click','.modify',function(){
var modId = $(this).attr('id');
var event_id = $(this).attr('class').split(' ')[1];
$.ajax({
    cache: false,
    url: '../ajax/paraphernalia/ajax_get_edit.php',
    type: 'post',
    data: { modId: modId, event_id: event_id},
    success:function(data){
        var mod_name = $(data).find('input#hidden_headerName').val();
        alert(mod_name);
        $('#display_modal_edit').html(data);
        $('#judge_name_header').html(mod_name);
    }
});

});

ajax_get_edit.php

session_start();
require ("../../global.php");

if (isset($_POST['modId']) && isset($_POST['event_id'])) {
    $modId = $_POST['modId'];
    $event_id = $_POST['event_id'];
    $output = '';
    $sql = mysql_query("SELECT * FROM tbl_judges WHERE judge_id = ".$modId." AND event_id = ".$event_id."");
    $soc_sql = mysql_fetch_assoc($sql);

    $output .= '<input type="text" value="GetThisvalue" id="hidden_headerName">';
    $output .= '.....';//bunch of codes here        
    $output .= '</div>';

    echo $output;
}

【问题讨论】:

  • 我认为这里的问题是 data 是一个字符串而不是一个 DOM 元素。所以像这样使用jQuery当然行不通,您需要将字符串作为字符串处理,或者将其插入到DOM中的某个不可见的div中,然后获取.val()然后将其删除
  • 如果您只需要值,为什么 ajax_get_edit.php 会返回所有 HTML?
  • dataType 设置为html($.ajax 设置),并尝试使用.filter() 而不是find()
  • 我很高兴能帮上忙,但请考虑@Bolli 的建议。
  • 我宁愿使用method: "post"而不是type: "post",因为类型令人困惑

标签: javascript php jquery ajax


【解决方案1】:

您可以从 PHP 返回一个 JSON 并在客户端上创建您需要/不需要的 Div,如果您只需要一些值,它也更简单

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多