Jquery ajax input[name=somename] val(data) -如何识别多个变量


jquery ajax input[name=somename] val(data) - how to identify multiple variables

在本网站的帮助下,到目前为止,我已经弄清楚了如何通过ajax获得输入字段的值。现在我需要获得特定的值来分隔输入字段(用户表单)。概述;用户正在从jquery结果中选择数据传播到表单,这样用户就不必手动输入该数据。

下面是我的脚本代码:
  <script>
  var book_title;
  var author;
  var published;
  var description;
  var pages;
  var Publisher;
  var ISBN;
  $(function() { 
  $( "#dialog" ).dialog({
    height: 550, width: 450});
    $( ".btn" ).click(function(){ 
   //var book_title = $item['volumeInfo']['title'];
   $.ajax({
     type: "POST",
     url: 'book-meta.php',
     //dataType: 'json',
     //data: { book_title : $("#returnvalues").val()  },
     data: { book_title : '$title', author: "Author"},
     success: function(data)
         {
         //alert(data);
         //console.log(data);
         $("input[name='bbp_extra_field1']").val(data);
         $("input[name='bbp_extra_field2']").val(data);
         //$("#displayResults").html(data);
         },
         error: function(errorThrown){
         alert('error');
         }
         });
  $( "#dialog" ).dialog( "close" );  
  });
  });
  </script>

book-meta.php代码如下:

     if ( isset( $_POST['book_title'] )) {
//      echo $_SESSION['book_title'];
//        $book_title = $_REQUEST['book_title'];
        $book_title = $_POST['book_title'];
        echo $book_title;
      }
     if ( isset( $_POST['author'] )) {
        $author = $_POST['author'];
        echo $author;
      }
这是数据输入的代码。到目前为止,我可以将数据发送到$value部分,但是发送到两个输入字段的数据是相同的。简而言之,我正试图将book_title获取到bbp_extra_field1,并试图将author获取到bbp_extra_field2。
add_action ( 'bbp_theme_before_topic_form_content', 'bbp_extra_fields');
function bbp_extra_fields() {
//  include 'book-meta.php';
  //This is where the cover will go, from google book search
   $value = get_post_meta( bbp_get_topic_id(), 'bbp_extra_fieldc', true);
//   echo '<label for="bbp_extra_fieldc">Cover</label><br>';
   echo "<p><input type='image' name='bbp_extra_fieldc' value='".$value."'></p>";
  //Input field for the Author
   $value = get_post_meta( bbp_get_topic_id(), 'bbp_extra_field1', true);
   echo '<label for="bbp_extra_field1">Author</label>';
   echo "<p><input type='text' name='bbp_extra_field1' value='".$value."'></p>";
   $value = get_post_meta( bbp_get_topic_id(), 'bbp_extra_field2', true);
   echo '<label for="bbp_extra_field2">Published</label><br>';
   echo "<p><input type='date' name='bbp_extra_field2' value='".$value."'></p>";

任何帮助都会很感激。谢谢。

您可以使用json:

 if ( isset( $_POST['book_title'] )) {
    $book_title = $_POST['book_title'];
  }
 if ( isset( $_POST['author'] )) {
    $author = $_POST['author'];
  }
  $r=array("title"=>$book_title,"author"=>$author);
  print(json_encode($r));

我没有检查上面代码中是否存在$book_title$author你可能需要检查一下

jquery.ajax中加入dataType和改变success:

dataType: 'json',
success: function(data) {
     $("input[name='bbp_extra_field1']").val(data.title);
     $("input[name='bbp_extra_field2']").val(data.author);
}