javascript(ajax)和php一起工作?

javascript(ajax)和php一起工作?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个问题,我的Js文件无法识别由ajax构建的php变量。 以下是一个例子: index.php: <script src="js.js"> </script> <? include('build.php'); <div id="brand"> <? echo $brandinput; ?> </div> //....more code ?> 因此,我将尝试用最简单的方式解释这一点。我的index.php包含一个

我有一个问题,我的Js文件无法识别由ajax构建的php变量。 以下是一个例子:

index.php:

<script src="js.js">
</script>
<?
include('build.php');
<div id="brand">
<?
   echo $brandinput;
?>
</div>
//....more code
?>
因此,我将尝试用最简单的方式解释这一点。我的index.php包含一个build.php,您可以看到它调用ajax从另一台服务器检索数据。此数据位于一个php变量(
$brandinput
)中,该变量将包含许多
、、,,。。。等等。
然后index.php echo$brandinput,显示变量的所有内容。但是我有一个js.js,它可以改变div、input等中的外观。。这就是js,它不识别变量$brandinput的内容

我想知道你是否有更多的想法或者我做错了什么。。。 所有的代码都运行良好,我测试了很多次(除了我之前说过的内容) ajax调用工作正常,Index.php正确显示
$branpoint

p、 美国的$brandinput是这样的:

<div id='BlackBerry'><img src='..\/images\/supporteddevices\/blackberry-logo.jpg' alt='blackberry-logo' width='75'><br><input class='adjustRadio' type='radio'
<? include('build.php'); ?>
<div id="brand">
    <? echo $brandinput; ?>
</div>
<script src="js.js"></script>

//....more code


您可以尝试将
标记移动到php代码之后,如下所示:

<div id='BlackBerry'><img src='..\/images\/supporteddevices\/blackberry-logo.jpg' alt='blackberry-logo' width='75'><br><input class='adjustRadio' type='radio'
<? include('build.php'); ?>
<div id="brand">
    <? echo $brandinput; ?>
</div>
<script src="js.js"></script>

//....more code

//……更多代码

略微不同的注释,您应该考虑避免使用HTML和JavaScript嵌入/混合PHP代码。看看这个,可以找到更好的方法“将数据从PHP传递到Javascript”

实际上,它应该是这样工作的,您需要做的是等待ajax请求首先完成,然后再执行
js.js中的函数

这样试试

// in build.php
$(document).ready(function () {
    var promise = $.ajax({
        crossOrigin: true,
        dataType: "jsonp",
        type: "GET",
        url: "getBrand.php",
        data: info,
        success: function (data) {
            $("#result").html(data);

            //dosomething with div's in index.php
        }
    });
});
或者(假设js.js在build.php中的脚本之后加载,或者js.js必须在脚本之后加载)

p.S


$brandinput
只要保留分配给它的字符串,就永远不会被ajax请求更改,ajax成功处理程序只需在客户端直接操作呈现的DOM。

1。为什么对同一个域请求使用JSONP?2.
$brandinput
是您在build.php 3上设置的值。HTML中没有名为textfield的标记。你可能是指第1区。我从另一台服务器检索数据,所以它不是同一个域。是的。3.是的,对不起,我在最后一分钟修改了,现在编辑了。只是修改了,但没用。我现在认为我的js.js没有读取
$brandInput
的内容。但我的html确实读取了它,因为当我使用
echo$brandInput
时,它会在屏幕上准确地显示我想要的内容。我会继续寻找答案。
// in build.php
$(document).ready(function () {
    var promise = $.ajax({
        crossOrigin: true,
        dataType: "jsonp",
        type: "GET",
        url: "getBrand.php",
        data: info,
        success: function (data) {
            $("#result").html(data);
        }
    });
});

// in js.js
$(document).ready(function () {
    promise.then(function (data) {
        //dosomething with div's in index.php
    });
});