$ .ajax不能在Chrome和Firefox中工作,但正在IE中工作
问题描述:
我有以下代码。它在IE中运行良好,但在Chrome和Firefox中无法运行。没有显示错误。它只是没有得到输入的值。有人可以帮我解决这个问题。提前致谢。
File 'main.php'
---------------
<tr>
<td width="11%" class="style171"></td>
<td width="55%" bgcolor="#A8D3FF" class="style171"><strong>APPROVE</strong></td>
<td width="16%" bgcolor="#A8D3FF" align="center"><input type="radio" name="approve" id="approve" value="1" <?php if ($approve== '1') echo "checked"; ?> /></td>
<td width="18%"></td>
</tr>
<tr>
<td width="11%" class="style171"></td>
<td class="style171" bgcolor="#A8D3FF"><strong>NOT APPROVE</strong></td>
<td bgcolor="#A8D3FF" align="center"><input type="radio" name="approve" id="approve" value="2" onClick="processForm()" <?php if ($approve== '2') echo "checked"; ?> /></td>
<td width="18%"></td>
</tr>
<tr>
<td width="11%" class="style171"></td>
<td colspan="2" align="left"><div id="div_data"></div></td>
<td width="18%"></td>
</tr>
<script type="text/javascript">
function processForm()
{
var val = 0;
if(window.document.getElementById('approve').checked)
var val = 1;
$.ajax({
type: 'POST',
url: 'not_approved.php',
data: "value="+val,
cache: false,
success: function(html){
$("#div_data").html(html);
}
});
}
</script>
File 'not_approved.php'
-----------------------
<form id="formt" name="formt" method="post" action="">
<table width="100%" border="0" align="left" cellpadding="1" cellspacing="0" bgcolor="#D8EEFE">
<tbody>
<tr>
<td colspan="3"><table width="100%" border="1" bordercolor="#33CCFF" cellspacing="0" cellpadding="1">
<tbody>
<tr class="style2">
<td align="left"><font color="#FF0000">*</font> Enter your comments here.
<table width="430" border="0">
<tr class="style2">
<td width="10" align="left" valign="top"></td>
<td width="410" colspan="2" align="left" valign="top"><textarea name="comment" id="comment" cols="45" rows="5"><?php echo $comment; ?></textarea></td>
</tr>
</table></td>
</tr>
</tbody>
</table></td>
</tr>
</tbody>
</table>
</form>
答
试试这个
function processForm()
{
var val = 0;
if(window.document.getElementById('approve').checked)
var val = 1;
$.ajax({
type: 'POST',
url: 'not_approved.php',
data: {value:val},
cache: false,
success: function(html){
$("#div_data").html(html);
}
});
}
</script>
**申请变更**数据
答
你是在传递错误的方式做数据如下
data: "{'value':"+val+"}",
和如果该值是字符串,则
data: "{'value':'"+val+"'}",
或
data: JSON.stringify({value:val})
+0
我试过'data:JSON.stringify({value:val})',但它在IE中不起作用。另外两个在IE中运行,但不在Chrome和Firefox中运行。我得到这个错误'注意:未定义的索引:fieldname'。 – anny 2014-11-04 07:05:21
答
您的数据变量不能是字符串格式,因为它是一个变量名。你应该做的是这样的:
<script type="text/javascript">
function processForm()
{
var val = 0;
if(window.document.getElementById('approve').checked)
var val = 1;
$.ajax({
type: 'POST',
url: 'not_approved.php',
data: {
value: val,
}
cache: false,
success: function(html){
$("#div_data").html(html);
}
});
}
</script>
这里分配给价值变量和分配我们使用冒号这里脚本变量val值:不是在AJAX =“”。在服务器端,捕获变量也必须具有相同的名称,即值。
我试过了,但仍然不起作用。它显示'Notice:Undefined index:fieldname' – anny 2014-11-04 06:52:02
但是我不能在你的代码中看到'fieldname'。所以你可以提供完整的代码和html – 2014-11-04 07:54:29
我已经提供了上面的代码。 Tq – anny 2014-11-04 08:15:44