簡體   English   中英

一個帶有JSON響應且傳遞對象的AJAX示例

[英]AJAX example with JSON Response with object being passed

我在使用AJAX將關聯數組發送到php文件時遇到了困難。 有些事情我不清楚。 這是我的代碼,可以通過輸入標簽的形式來制作數組,但是我不知道如何在php中發送和解釋它。

<script type="text/javascript">
$(document).ready(function(){
  $(':submit').on('click', function() { // This event fires when a button is clicked
      var theData = {};
      $(":input:not(:button)").each(
        function(index){  
            var input = $(this);
            theData[input.attr('name')] = input.val();
        }
      );
      $.ajax({ // ajax call starts
          url: "http://www.aberlechiropractic.com/meningealrelease/modifydoctors/modifydoctors3.php",
          data: theData,
          dataType: 'json',
          success: function(data)
          {
              $('#wines').html(''); // Clear #wines div
              $('#wines').append('Data Received: ' + data.name+'   '+data.address + '<br/>');
          }
      });
      return false; // keeps the page from not refreshing 
  });
});
</script>

<body>
  <form>
    <input type="text" name="name" id="name" value="Jeff Aberle"/>
    <input type="text" name="address1" id="address1" value="4710 East Broadway"/>
    <button type="submit" name="updatedoctor" id="updatedoctor" value="all">All</button>
  </form>
</body>

這是我的PHP代碼:

<?php
$name = $_GET['name'];
$address1 = $_GET['address1'];
$array = array($button, $address1);
print json_encode($array);
?>

嗯,現在一切正常。 我在這里編輯了所有代碼以使其正常工作。

<?php
// Get value of clicked button
$name = $_GET['name'];
$address1 = $_GET['address1'];
$array = array(
    "name"    => $name,
    "address"  => $address1,
);
print json_encode($array);
?>

我也有一個id = wines的div。 這是我忘記展示的另一件事。 那是數據返回並顯示的地方,但沒有名稱。

您的jQuery代碼收集值是正確的,盡管.serialize()可以簡化它。

要檢索PHP中的值,就像正常提交表單一樣。 它們位於$_GET['name']$_GET['address1'] theData只是包含對象的Javascript變量的名稱,而不是發送給PHP的屬性名稱。

抱歉,我在手機上,所以它的答案很短,但是請使用序列化

http://api.jquery.com/serialize/

    $('form').on('submit', function(){
      $data = $(this).serialize();
      //send via ajax
      return false;
    })

發送數據:我假設您要發送表單結果? 為此,首先您需要在頁面上添加一個提交按鈕。 這應該放在您的表單中以提交代碼。

其次,您似乎缺少了在AJAX成功響應中引用的<div id="wine"> ,因此您需要添加它。

嘗試此操作,您必須在表單中添加按鈕以觸發操作:

<script type="text/javascript">

$(document).ready(function(){
  $('#submit').live('click', function() {
      var theData = {};
      $(":input:not(:button)").each(
        function(index){  
            var input = $(this);
            theData[input.attr('name')] = input.val();
        }
      );
      $.ajax({
          url: "http://www.aberlechiropractic.com/modifydoctors3.php",
          data: theData,
          dataType: 'json',
          success: function(data)
          {
              $('#wines').html(''); // Clear #wines div
              $('#wines').append('Data Received: ' + data + '<br/>');
          }
      });
      return false; // keeps the page from not refreshing 
  });
});
</script>

<body>
  <form>
    <input type="text" name="name" id="name" value="Jeff Aberle"/>
    <input type="text" name="address1" id="address1" value="4710 East Broadway"/>
    <input type="button" id="submit" value ="send"/>
  </form>
</body>




<?php
$button = $_GET['theData'];
$array = array($button.name, $button.address1, $button.state);
print json_encode($array);
?>

暫無
暫無

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

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