【问题标题】:Call php file inside javascript not working在javascript中调用php文件不起作用
【发布时间】:2014-11-11 15:12:40
【问题描述】:

我的 PHP 调查表中有以下问题:

如图所示,当用户选择“按演员”时,会出现一个文本框(我为此使用了 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,但是使用上面的代码,当我单击按钮时,会出现一个新窗口,但它是空的。

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

提前致谢,

【问题讨论】:

  • childfilm.php 放在引号中,您现在正在使用它,就好像它是一个变量,而不是字符串文字。它应该看起来像 url: "childfilm.php",
  • 像这样在它周围加上引号......“childfilm.php”
  • 像这样“yourdomain/childfilm.php”设置完整的url
  • 糟糕,我忘了!!谢谢:)
  • 您在编辑中添加了引号url: 'childfilm.php',。您应该始终注意已对此进行了编辑。当人们看到你的问题并自言自语时,给出答案的人可能会因此而被否决:“那里有引号,为什么要回答?”。

标签: javascript php jquery ajax parent-child


【解决方案1】:

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>

【讨论】:

    【解决方案2】:

    如果您将网址放在引号之间,则问题已解决:网址:'childfilm.php'。没有引号 javascript 认为它是一个对象(它将返回未定义)。

    【讨论】:

      猜你喜欢
      • 2014-07-25
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-17
      相关资源
      最近更新 更多