PHP提交表单忽略以零开头的值

时间:2014-05-16 21:21:55

标签: javascript php forms parsing

我遇到了这个问题。我希望传递一个我之前刮过的值。具体来说,值是来自IMDB的电影代码。

我在foreach语句中解析了imdb编号,如:

$xml = simplexml_load_file(RSS URL Here);
$items = $xml->xpath('//item');

foreach ( $items as $item) {
    $myimdb = $item->imdb;   

    echo $myimdb;    //this echoes fine

    <form action='JavaScript:getTrailers({$myimdb})' method='POST' id='{$myimdb}'>
    <input type='hidden' id='movieid'  name='movieid' value='{$myimdb}'>
    <a  href='javascript:;' onclick='parentNode.submit();'>Get Trailer</a>

}

我的getTrailers的JS脚本如下:

<SCRIPT LANGUAGE="JavaScript">
function getTrailers(movieid)
{
   $("#mytrailers").load("trailersearch.php",$("#test" + movieid).serialize());  
}
</SCRIPT>

在我的trailersearch.php中,我的代码如下所示:

$theimdb = $_GET["movieid"];
echo "{$theimdb}<br>";

如果电影的imdb ID不是以0开头,如1234567,则代码执行正确,trailersearch.php正确回显数字。

但是如果一个ID从零开始,比如0123456,那么$ theimdb变量是空白的并且回显空白。许多theolder IMDB电影以0或甚至00开始。

任何人都可以帮我解决这个问题。非常感谢任何帮助或建议。我不是超级专家。

非常感谢,

Hernando的

1 个答案:

答案 0 :(得分:0)

<form action='JavaScript:getTrailers({$myimdb})'

这就是问题 - 你忽略在参数值周围添加引号,这样对于JavaScript来说 是一个数字 - 数字不是 “领先的零”。

所以做那个

<form action='JavaScript:getTrailers("{$myimdb}")'

它应该可以正常工作。

(你很幸运,你没有遇到更严重的问题,因为给定正确的数字,JS可以将该值解释为 octal 号码 - 然后你不仅会丢失领先的零,但完全不同的价值......)