【问题标题】:Pass Unique PHP Variable to Javascript via Form通过表单将唯一的 PHP 变量传递给 Javascript
【发布时间】:2014-05-03 13:44:51
【问题描述】:

这是我的问题的延续。

Pass Text Input Variable to PHP for Div Loading

该问题的解决方案如下所示:

HTML:

<script type="text/javascript">
    function goSearch(){
        $("#Moviesearchdiv").load("MovieSearch.php",$('#mySearch').serialize());
     }
</script>

<form action="JavaScript:goSearch()" method="POST" id="mySearch" >
    <input type="text" name="moviename">
    <input type="submit" name="submit" value="Search" >
</form>

<div id="Moviesearchdiv"></div>

我的 MovieSearch.php 看起来像这样:

<?php
$themovie = $_POST["moviename"];
$myurl = "http://my-url-here.com/search/?q={$themovie}";

    $response = file_get_contents($myurl);
    $result = json_decode($response, true);
    $result=$result['movies'];

    $totality = count($result);

    for ($i = 0; $i <$totality; $i++) {
        $mymovietitle = $result[$i]['original_title'];
        $myposter = $result[$i]['poster_original'];
        $uniquemovieID = $result[$i]['movie_id'];
        echo "<li><img src={$myposter} >{$mymovietitle}</li>";
    }
?>

在 php 的底部,在每个找到的结果中,我想要一个按钮,我可以在其中将该电影添加到我的收藏中。这是通过另一个 API 调用完成的,该调用基本上将“movie-id”代码附加到 API url 的末尾。所以上面 php 的 bootom 看起来是这样的:

    for ($i = 0; $i <$totality; $i++) {
        $mymovietitle = $result[$i]['original_title'];
        $myposter = $result[$i]['poster_original'];
        $uniquemovieID = $result[$i]['movie_id'];
        echo "<li><img src={$myposter} >{$mymovietitle}

        <form action='JavaScript:addMovie()' method='POST' id='{$uniquemovieID}' >
            <input type=hidden id=movieid  name=movieid value={$uniquemovieID }>
            <input type='submit' name='submit' value='Add'  style='width: 50px;'>
        </form>

        </li>";
    }

    <SCRIPT LANGUAGE="JavaScript">
    function addMovie()
    {
        $("#Moviesearchdiv").load("movieadd.php",$("#yourFormId2").serialize());  
    }
    </SCRIPT>

最后,movieadd.php 文件看起来像:

<?php
$themovieID = $_GET["movieid"];

$addurl = "http://my-api-url/movie.add/?identifier={$themovieID }";

$response = file_get_contents($addurl);
$result = json_decode($response, true);
$result=$result['success'];
echo $result;

if ($result$ == 'True') {
    echo "Movie was SUCCESSFULLY Added!";

} else {
    echo "Sorry, something went wrong...";
}


?>

因为搜索会返回各种电影,所以每部电影的“id”形式必须是唯一的。我想将 PHP 变量 $uniquemovie 传递给 JS 函数行,替换 #yourFormId2 值。

 $("#Moviesearchdiv").load("movieadd.php",$("#yourFormId2").serialize());

我希望有人可以提供帮助...非常感谢任何帮助建议。感谢您抽出宝贵时间阅读本文。

赫尔南多

【问题讨论】:

  • 当您加载 MovieSearch.php 时,您是通过 GET 发送电影名称而不是 POST。

标签: javascript php jquery html


【解决方案1】:

您可以将 id 本身传递给 javascript。

<form action='JavaScript:addMovie('{$uniquemovieID}')' method='POST' id='{$uniquemovieID}' >
    <input type=hidden id=movieid  name=movieid value={$uniquemovieID }>
    <input type='submit' name='submit' value='Add'  style='width: 50px;'>
</form>


<SCRIPT LANGUAGE="JavaScript">
    function addMovie( movieId )
    {
        $("#Moviesearchdiv").load("movieadd.php",$("#" + movieId).serialize());  
    }
</SCRIPT>

【讨论】:

  • 谢谢KNaito...我尝试了您的代码但没有任何运气,在检查输出时,表单代码的格式为&lt;form action="JavaScript:addMovie(" tt1630029')'="" method="POST" id="tt1630029"&gt; tt1630029 是正确的movieID。
  • 开始工作了!!!!上面的正确语法是&lt;form action='JavaScript:addMovie(\"{$uniquemovieID}\")' method='POST' id='{$uniquemovieID}' &gt; 非常感谢KNaito,你做到了!
猜你喜欢
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
相关资源
最近更新 更多