$ .ajax不在chrome和firefox中工作,但在IE中工作

时间:2014-11-04 06:01:42

标签: javascript ajax google-chrome firefox

我有以下代码。它在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>

3 个答案:

答案 0 :(得分:0)

试试这个

            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>

**日期字段已更改**

答案 1 :(得分:0)

您正在以错误的方式传递数据,如下所示

data: "{'value':"+val+"}",

如果值是字符串,那么

data: "{'value':'"+val+"'}",

data: JSON.stringify({value:val})

答案 2 :(得分:0)

您的数据变量不能是字符串格式,因为它是变量名。你应该这样做:

<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值赋值给value变量,为了分配我们在这里使用冒号&#39;:&#39;在AJAX中代替=。在服务器端,catch变量也必须是同名的,即值。