2014-11-25 33 views
0

我正在通过Jquery/Ajax呼叫验证我的html表单。这是由Php处理。在PHP页面中处理后返回所有成功结果或错误结果到Jquery Success方法。如何接收jQuery成功方法()中的其他参数?

所以我想在jquery成功方法()中接收另一个参数。有什么方法可以收到吗?

例如:在此以下行代码如果$numSearch是== 0

elseif($numSearch === 0){ 
    echo "<font color='red'>No Matches.</font>"; 
} 

然后我想接收在jquery的成功方法的另一参数,以便可以装入getDetails2(SearchValue);功能。现在它的值是integer。但它应该检查值是否是整数,结果是否显示。

PHP代码:

require_once("corefile.php"); 
$search = (int) $_POST['data']; 
$cdid = inputvalid($_POST['cdid']); 

if($cdid == "ID"){ 
    // if serach value is empty 
    if(empty($search)){ 
     echo "<font color='red'>Search keyword required.</font>"; 
    } 
    // if serach value is not empty 
    elseif(!empty($search)){   
     // start myqli_query to search 
     //$numserach 
    } 
    elseif($numSearch === 0){ 
     echo "<font color='red'>No Matches.</font>"; 
    } 
} 

jQuery代码:

$(document).ready(function() { 
    $("#cdid").click(function() {     
     var SearchValue = $('#txt_name').val(); 
     var cdid = $('#cdid').val();   

     $("#loading-image").show();   
     $.ajax({ //create an ajax request to load_page.php 
      type: "POST", 
      url: "doSearch.php",    
      data : { 
      'data' : SearchValue, 
      'cdid' : cdid 
     },   

     dataType: "html", //expect html to be returned     
     success: function(response){      
     if(Math.floor(SearchValue) == SearchValue && $.isNumeric(SearchValue)){ 
      getDetails2(SearchValue);   
     } 

     $("#showSearchResult").html(response);     
     $('#visiableaftersearch').hide(); 
     document.getElementById('txt_name').value=''; 
     document.getElementById('txt_given_name').value=''; 
     $("#loading-image").hide(); 

     }   
    }); 
}); 

});

回答

1

是的,它可以做到的,使用dataType: "json"在Ajax调用(而不是HTML响应),并发送一些标志错误&成功的基础上,该标志解析您的Json响应。

对于例如,

php文件你在做一个Ajax请求,应编码JSON格式返回数据,如(必要的标志)

//example 
echo json_encode(array($con_info)); 
+0

是的,我知道这是可以做到的使用'数据类型: “jsone”'。但是不能使用'dataType:“html”'完成? – Babu 2014-11-25 06:30:22

+1

在json中解析和发送AJAX数据非常干净 – 2014-11-25 06:31:49

+0

是的,你说得对。 – Babu 2014-11-25 06:33:29

2

这是可能的,如果你使用JSON,这样可以增加更多的值作为键值对,在的JSONObject如:

{"key1":"value1","key2":"value2"} 

然后,使用JSON.parse,解析来自成功方法中的数据。然后循环,分别获取关键值&。

success: function(response){ 
    var json=JSON.parse(response); 

    jQuery.each(json, function(i, val) { 
     console.log("key : "+i+" value: "+val); 
    }); 
} 
+1

精心制作! – 2014-11-25 06:55:10

相关问题