【发布时间】: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