0

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 もあります。それは私が示すのを忘れていた別のものでした. ただし、そこにデータが返され、名前なしで表示されます。

4

4 に答える 4

1

値を収集するための jQuery コードは正しいですが、.serialize()単純化されます。

PHP で値を取得するには、フォームを通常どおり送信する場合と同じです。彼らは$_GET['name']とにいます$_GET['address1']theDataオブジェクトを含む Javascript 変数の名前に過ぎず、PHP に送信されるプロパティ名ではありません。

于 2013-10-04T01:23:49.050 に答える
0

申し訳ありませんが、私は自分の電話にいるので、短い答えですが、シリアル化を使用してください

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

    $('form').on('submit', function(){
      $data = $(this).serialize();
      //send via ajax
      return false;
    })
于 2013-10-04T01:15:42.507 に答える
0

データを送信するには: フォームの結果を送信したいと思いますか? これを行うには、まず送信ボタンをページに追加する必要があります。コードを送信するには、これをフォームに配置する必要があります。

<div id="wine">次に、 AJAX 成功応答で参照したが欠落しているように見えるので、それを追加する必要があります。

于 2013-10-04T01:18:00.757 に答える
0

アクションを起動するには、フォームにボタンを追加する必要があります。

<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);
?>
于 2013-10-04T01:19:29.080 に答える