2015-10-08 75 views
2

我在页面上有两种形式“顶部表单”搜索电影,我试图从顶部表单中获取数据并将其作为值传递给底部表格,因此可以输入到数据库中。将表单结果传递给另一个表单到表单值

我无法做到这一点,但我可以得到的结果显示在页面上。这里是我的代码:

TOP FORM DATA

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<?php 
$squery=""; 
if(isset($_GET["squery"])) 
{ 
$squery=$_GET["squery"]; 
} 
?> 
<div class="col-xs-8 col-xs-offset-2"> 
<form action="#" method="GET" class="form-horizontal"> 
<div class="form-group"> 
     <label for="newMovieName" class="col-sm-3 control-label">Search what movie?</label> 
     <div class="col-sm-9"> <input type="text" name="squery" class="form-control"><br /> 
<input type="submit" value="Submit" class="btn btn-success"></div></div> 
</form> 
    <script type="text/javascript" charset="utf-8"> 
    var api_key = '6969696969696969696969696969696'; 

    $(document).ready(function(){ 
     $.ajax({ 
     url: 'http://api.themoviedb.org/3/search/movie?api_key=' + api_key + '&query=<?php echo $squery; ?>', 
     dataType: 'jsonp', 
     jsonpCallback: 'testing' 
     }).error(function() { 
     console.log('error') 
     }).done(function(response) { 
      var i=0; 
     // for (var i = 0; i < response.results.length; i++) { 
      $('#search_results').append('<li>' + response.results[i].title + '</li>'); 
     // } 
     $('#search_results_title').append(response.results[i].title); 
     $('#search_results_release').append(response.results[i].release_date); 
     $('#search_results_overview').append(response.results[i].overview); 
     $('#search_results_poster').append('https://image.tmdb.org/t/p/w185' + response.results[i].poster_path); 
     $('#search_results_votes').append(response.results[i].vote_count); 
     }); 
    }); 
    </script> 

TOP表单结果

这里就是结果从上面的形式显示出来,我想这些结果以下面的形式显示为一个值。

<h3>Results</h3> 

    <p id="error"></p> 
    <ul id="search_results_title"></ul> 
    <ul id="search_results_release"></ul> 
    <ul id="search_results_overview"></ul> 
    <ul id="search_results_poster"></ul> 
    <ul id="search_results_votes"></ul> 

底模数据

这里是底部形式应该获得与如上文所值的“结果”提交到数据库。

<form class="form-horizontal" role="form" action="processmovie.php" method="get" enctype="text/plain"> 
    <div class="form-group"> 
    <label for="newMovieName" class="col-sm-3 control-label">Title</label> 
    <div class="col-sm-9"> 
     <input type="text" class="form-control" id="newMovieName" name="movie_name" placeholder="Movie Title" required value=""> 
    </div> 
    </div> 
    <div class="form-group"> 
    <label for="movieYear" class="col-sm-3 control-label">Year</label> 
    <div class="col-sm-9"> 
     <input type="text" class="form-control" id="movieYear" name="movie_year" placeholder="Year" required> 
    </div> 
    </div> 
    <div class="form-group"> 
    <label for="movieBio" class="col-sm-3 control-label">Storyline</label> 
    <div class="col-sm-9"> 
     <textarea type="email" class="form-control" id="movieBio" name="movie_bio" rows="4" placeholder="Enter Storyline" required></textarea> 
    </div> 
    </div> 
    <div class="form-group"> 
    <label for="newImage" class="col-sm-3 control-label">Movie Cover URL</label> 
    <div class="col-sm-9"> 
     <input type="text" id="newImage" class="form-control" name="movie_img" placeholder="Enter URL" required> 
    </div> 
    </div> 
    <div class="form-group"> 
    <label for="movieRating" class="col-sm-3 control-label">Rating</label> 
    <div class="col-sm-9"> 
     <select id="movieRating" name="movie_rating" class="form-control" required> 
     <option value="G">G</option> 
     <option value="PG">PG</option> 
     <option value="PG-13">PG-13</option> 
     <option value="R">R</option> 
     <option value="NR">NR (Not Rated)</option> 
     </select> 
    </div> 
    </div> 
    <div class="form-group"> 
    <div class="col-sm-offset-3 col-sm-9"> 
     <button type="submit" class="btn btn-success">Add Movie</button> 
    </div> 
    </div> 
</form> 

我试图用一个代码variaty,试图让这里的值是一个例子:<?php echo $_GET['search_results_title'];?>

我也发现了这样的例子:How to pass the value of a form to another form?但是,我的形式是在同一页上而不是不同的。

+0

如果形式是在同一个页面,那岂不是要考虑采用了棱角分明JS的情况?所有的值都在客户端流...甚至在这里PHP也不是你的问题(也不是解决方案)。 –

+0

您在加载页面时正在进行ajax调用,那时'squery'变量中没有任何值。所以,绝不会将值保存在'$ squery'变量中,并且您将永远无法通过Ajax调用获取正确的数据。 – sandeepsure

+0

我对你想要的有点困惑。对我来说,你所要求的只是将你的ajax调用的值放到第二个表单中。如果是这种情况,那么就使用(在你的'.done()'调用中)'$('#newMovieName').val(response.results [i] .title);'等等。我不理解你是否正确? – ioums

回答

2

正如我在我的评论说,你只是想你的Ajax调用改变这样的事情:

$.ajax({ 
     url: 'http://api.themoviedb.org/3/search/movie?api_key=' + api_key + '&query=<?php echo $squery; ?>', 
     dataType: 'jsonp', 
     jsonpCallback: 'testing' 
     }).error(function() { 
     console.log('error') 
     }).done(function(response) { 
     var i=0; 

     $('#newMovieName').val(response.results[i].title); 
     $('#movieYear').val(response.results[i].release_date); 
     $('#movieBio').val(response.results[i].overview); 
     $('#newImage').val('https://image.tmdb.org/t/p/w185' + response.results[i].poster_path); 
     }); 

(我不知道你有response.results[i].vote_countmovieRating之间的关系)

Here is a fiddle排序显示结果,虽然我不能完全准确地复制你的代码,因为那里的Ajax调用

+0

**真棒!**作品像一个魅力...感谢您花时间帮助我! – antivinegar

相关问题