簡體   English   中英

使用Json時,Ajax中的成功函數不起作用

[英]The success Function in Ajax Doesn't work When using Json

我有一個登錄表單顯示在jquery的對話框中我需要使用Ajax和json方法將一個變量從php傳遞給我的jquery問題是ajax中的成功函數不起作用我總是得到錯誤函數

這是我的php和jquery代碼:

jQuery的:


    $(document).ready(function () {

    $(".logbut").click(

         function () {

        $(".login").dialog({
              width: 400,
              height:320,
        modal: true,    
        autoOpen: true,
        resizable: false,

        show: {
          effect: "blind",
          duration: 3000
        },
         hide: {
          effect: "drop", 
          duration: 1000
        },

            buttons: {
                   'login': function() {

                       $.ajax({
                           url:"login.php",
                           type: 'POST',
                           dataType:"json",


                           success: function(data) {
                               if(data.status == 'success'){
                               alert("Thank you for subscribing!");

                               }else if(data.status == 'error'){
                               alert("Error on query!");
                               }
                           },
                           error: function(){

                            alert("the ajax doesnt work");   
                           }
                   })
                   }
            }
        })
         })
});

login.php中:


  <?php


  $serverName = "AMIN-PC";


  $connectionInfo = array( "Database"=>"Market");
  $conn = new PDO("sqlsrv:Server=AMIN-PC;Database=Market");
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $response_array = array();

  if( $conn === false ) {
  die( print_r( sqlsrv_errors(), true));
 }


  $passorg =  $_REQUEST['passorg'];
  $passorg = $conn->quote($passorg); 

  $userorg =  $_REQUEST['userorg'];
  $userorg = $conn->quote($userorg);


   $sql = "select count(*) from customers
    where customers_user=$userorg
    and customers_pass=$passorg";

   $stmt = $conn->query($sql);
   $result = $stmt->fetch();
   $count = $result[0];


  if($count >0) {
  $response_array['status'] = 'success'; 
  }
   else{
  $response_array['status'] = 'error'; 

 }
  header('Content-type: application/json');
 echo json_encode($response_array);
  ?>

HTML:


  <div class="logbut">Login</div>



  <div class="login" style="display:none;">

  <form method="post" class="logform" action="login.php">

  <input type="text" name="userorg" style=" width:80px;" class="userorg" />
  <label>Username</label>


  <input type="password" name="passorg"  style=" width:80px;" class="passorg"/>
  <label>Password</label>

 <input type="submit" style="display:none" value="check"/>
 </form>
 </div>

謝謝

您可以嘗試在ajax請求中按如下方式指定data參數:

$.ajax({
  url:"login.php",
  type: 'POST',
  dataType:"json",
  data:{passorg:value of passorg},
  success:.... 

你需要在ajax中傳遞變量並在php中獲取這些變量,例如:

$.ajax({
     url: "your url",
     type: "POST",
     cache: true,
     dataType:'json',
     data: {id: cid},
     success: function(returnedData){
       console.log(returnedData);
     },
     error: function (xhr, tst, err) {
       console.log(err);
     } 
 });

PHP

 $_REQUEST['id'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM