在AJAX上发送var的正确方法是什么

时间:2014-11-21 20:50:18

标签: javascript jquery asp.net ajax vb.net

我有一个调用Web方法的javascript函数。我尝试将常规字符串发送到web方法并且它有效。在var empid = $('#'+ txtId).val()我得到正确的文本框值。在ajax上发送empid的正确方法是什么?我尝试了一些事情,他们不工作。任何帮助,将不胜感激。谢谢

.js

function toggle(txtId, lblname, txtcode) {

var empid = $('#' + txtId ).val();

$.ajax({
    type: "POST",
    url: "SearchEmpId.asmx/GetEmployeeName",
    data: '{ id: empid }',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        $('#' + lblname).html(data.d);

    }
});    
}

.asmx.vb(webmethod)

Public Function GetEmployeeName(ByVal id As String) As String

Return "It works"

End Function

这是删除contentType时的屏幕截图

enter image description here

3 个答案:

答案 0 :(得分:2)

而不是

data: '{ id: empid }',

使用

data: { id: empid },

发送JSON

答案 1 :(得分:0)

对json数据使用dataType:“json”

$.ajax({
     url: 'ajax.php', //This is the current doc
     type: "POST",
     dataType:'json', // add json datatype to get json
     data: ({name: 145}),
     success: function(data){
         console.log(data);
     }
}); 

阅读文档http://api.jquery.com/jQuery.ajax/

同样在PHP中

<?php
  $userAnswer = $_POST['name']; 
  $sql="SELECT * FROM <tablname> where color='".$userAnswer."'" ;
  $result=mysql_query($sql);
  $row=mysql_fetch_array($result);
  // for first row only and suppose table having data
  echo json_encode($row);  // pass array in json_encode  
?>

答案 2 :(得分:0)

您可以使用以下内容:

var empid=$('#txtEmpId').val();

将数据传递给

data: { id: empid },

在这里查看小提琴:http://jsfiddle.net/gN6CT/103/