在javascript中调用php文件无法正常工作

时间:2014-11-11 15:12:41

标签: javascript php jquery ajax parent-child

我的PHP调查表中有以下问题: enter image description here

从图像中可以看出,当用户选择“按演员”时,会出现一个文本框(我使用jQuery自动完成)。然后,我需要的是当用户点击“这个演员的电影”按钮时,这个演员的电影列表(在这种情况下:汤姆汉克斯)将在新窗口中显示。

为了通过用户插入文本框中的演员来获取电影,首先,我必须这样做 能够在子窗口中访问selectedVal。然后,我必须运行数据库查询以通过selectedVal获取所有电影(文本框中的演员姓名)。

这是我的代码:

<html>
<body>
<div id="m_scents2" class="field2" style="display:none;">
 <input type="textbox" name= "tag" id="tags" placeholder="Enter an actor/actress name here" />
 <input type="button" value="Movies by this actor" id="btnRight" />
</div>

<script type="text/javascript">
var selectedVal;

$(document).ready(function () {
// ...
//..
if ($(this).val() == "byActor"){
      $("#tags").focus();
      $("#tags").autocomplete({
           source: "actorsauto.php",
           minLength: 2,
           focus: function( event, ui ){
               event.preventDefault(); 
               return false;
            },
           select: function (event, ui){ 
                window.selectedVal = ui.item.value;
           }
       });  
 });         

$('#btnRight').on('click', function (e) {
           popupCenter("movieByactor.php","_blank","400","400");
 });                   
</script>
</body>
</html>

这是子窗口(movieByactor.php):

<script type="text/javascript">
  var selectedVal = parent.window.opener.selectedVal; 

 $.ajax({
         url: 'childfilm.php',  //childfilm.php IS A PHP FILE WHERE I RUN SQL QUERY TO GET MOVIES BY THE ACTOR ...
         datatype: "json",
         data:{q:selectedVal},
         success: function(response) {
                     alert(JSON.stringify(response));      
                   }
        });
</script>

我的问题:

现在我的问题是如何在javascript中使用php?我知道php是服务器端,而javascript是客户端。我阅读了很多类似的问题并使用了ajax,但是使用上面的代码,当我点击按钮时,会出现一个新窗口,但它是空的。

如果有人可以帮助我,我真的很感激。

提前致谢,

2 个答案:

答案 0 :(得分:2)

如果您将网址放在引号之间,问题就解决了:网址:&#39; childfilm.php&#39;。没有引号,javascript认为它是一个对象(将返回undefined)。

答案 1 :(得分:2)

childfilm.php应该在引号中

<script type="text/javascript">
  var selectedVal = parent.window.opener.selectedVal; 

 $.ajax({
         url: 'childfilm.php',  //childfilm.php IS A PHP FILE WHERE I RUN SQL QUERY TO GET MOVIES BY THE ACTOR ...
         datatype: "json",
         data:{q:selectedVal},
         success: function(response) {
                     alert(JSON.stringify(response));      
                   }
        });
</script>