使用AJAX将减号符号作为后置值发送

时间:2015-05-25 14:09:07

标签: php jquery html ajax web

<html>
<head>
<script>
    function createMessage() 
    {
      jQuery.ajax
      ({
        url: "include/CreateMessage.php",
        data:"BloodGroup="+$("#bloodGroup").val(),
        type:"POST",
      success:function(data)
      {
        $("#message-span").html(data);
        $("#loaderIcon").hide();
        message-span
      },
        error:function (){}
      });
    }
<script>
<body>
    <form class="form-signin" method="POST" action="">
        <label> Contact Details </label>
        <br><input type="text" name="name" id="name" class="form-control" placeholder="Contact Person Name" maxlength="32" required/>
        <br><select class="form-control" name="bloodGroup" id="bloodGroup" required>
            <option value="" disabled selected>Blood Group</option>
            <option value="O +">O Positive (O+)</option>
            <option value="O -">O Negative (O-)</option>
            <option value="A +">A Positive (A+)</option>
            <option value="A -">A Negative (A-)</option>
            <option value="B +">B Positive (A+)</option>
            <option value="B -">B Negative (B-)</option>
            <option value="AB +">AB Positive (AB+)</option>
            <option value="AB -">AB Negative (AB-)</option>
        </select>
        <br><input type="text" name="time" id="time" class="form-control" placeholder="Time In Hour" maxlength="6" onBlur="createMessage()" required/>
        <br><button type="submit">Next ></button>
    </form>
</body>
</table>

但如果我在下拉框中选择O Positive(O +),但结果不能得到(O +)。我只得到O作为答案。

我想获得value属性中给出的下拉框的值。

2 个答案:

答案 0 :(得分:4)

问题是您需要对您的值进行编码以便在网址中使用:

data:"BloodGroup="+$("#bloodGroup").val(),

如果您不对值进行编码,则在服务器上解码值时,+将成为空格。

你可以让jQuery自动执行此操作:

data: { 'BloodGroup': $("#bloodGroup").val() },

如果您想手动编码(例如,当您不使用jQuery时),您可以使用:

data: "BloodGroup=" + encodeURIComponent($("#bloodGroup").val()),

答案 1 :(得分:0)

如果你改变了一些行,你当前的代码是完美的,

success:function(data)
  {
    $("#message-span").html(data);
    $("#loaderIcon").hide();
    // remove this line here // message-span
  },

将此<script>标记更改为关闭并完成</head>标记,如下所示,

      error:function (){}
      });
    }
</script>
</head>

此表单是在这些更改后通过JQ Ajax提交的。

以下是$_POST

的转储
array (size=1)
    'bloodGroup' => string 'O +' (length=3)