Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery replaceWith:根据屏幕分辨率将一个php文件替换为另一个php文件_Php_Jquery_Replace - Fatal编程技术网

Jquery replaceWith:根据屏幕分辨率将一个php文件替换为另一个php文件

Jquery replaceWith:根据屏幕分辨率将一个php文件替换为另一个php文件,php,jquery,replace,Php,Jquery,Replace,我需要能够用另一个基于屏幕分辨率的php文件替换一个php文件。这就是我到目前为止所做的: <script type="text/javascript"> function adjustStyle(width) { width = parseInt(width); if (width = 1920) { $('book.php').replaceWith('book2.php'); } } $(function() { adjustStyle($(this).width()); $(

我需要能够用另一个基于屏幕分辨率的php文件替换一个php文件。这就是我到目前为止所做的:

<script type="text/javascript">
function adjustStyle(width) {
width = parseInt(width);
if (width = 1920) {
$('book.php').replaceWith('book2.php');
}
}
$(function() {
adjustStyle($(this).width());
$(window).resize(function() {
adjustStyle($(this).width());
});
});
</script>
第二次更新以反映此处收集的输入


第一个问题是,我认为您使用的选择器不正确。如果您有以下容器:

$.ajax({
 url: "http://yoururl.com/book2.php",
 }).success(function ( data ) {
  $('#bookContainer').replaceWith(data);
});.
book1.php的内容

替换该容器内容的代码应为

$('#bookContainer')。替换为([contents of book2.php])

为了获取[contents of book2.php],您需要使用以下代码通过ajax将其拉入,我还包括了上面的一行,以便将book2.php中的数据放入容器中:

$.ajax({
 url: "http://yoururl.com/book2.php",
 }).success(function ( data ) {
  $('#bookContainer').replaceWith(data);
});.

我还没有对此进行测试,因此可能会有问题,但这是实现此目标所需的概念。

我还没有看到在您将其放入的上下文中使用replaceWith。如果您想交换内容,您可能需要使用jQuery的load()函数来完成

    if(width == 1920){
            $("#myDiv").load("book1.php");
    } else {
            $("#myDiv").load("book2.php");
    }

单击按钮将div的内容替换为book2.php。

首先。。。使用带有单=(等号)的条件将导致在将检查变量的值设置为检查所依据的值时,条件始终为true

你的情况应该如下所示

如果(宽度=1920){//做某事}

其次,请参阅jQuery文档,了解如何使用replaceWith()将整个标记替换为jQuery对象

我会使用一个速记贴子,因为你还没有加载对象

简言之,如果我有一个id为“book”的标记,最初包含book.php的内容,并且我想用book2.php的内容替换它,那么使用$.post而不是$.ajax,我的代码如下所示

HTML


希望这有帮助。

屏幕分辨率或屏幕像素大小,它们不是一回事。屏幕分辨率-我挂断的部分是写这行的正确方法:$('book.php')。replaceWith('book2.php');这显然用第二个php文件替换了第一个php文件。我不认为,或者不知道你的评论如何回答我的问题。使用if(宽度=1920)。如果这样做,则仅当宽度正好为1920时才有效。第二个是,你应该做一个比较,如果(width==1920){}@Daniel-是的,只有1920年,是的,我知道-我把代码浓缩到我真正需要帮助的地方,这是:$('book.php').replaceWith('book2.php');我调整了上面的代码--你能告诉我它看起来是否正确吗?我会使用Daniel提供的答案。这是我正在做的一个更简单的版本。谢谢Daniel,但是我有一个处理和显示一定数量结果的php文件,并且需要能够用另一个根据屏幕分辨率处理和显示或多或少结果的php文件替换该文件。替换文件似乎是最好的选择-我不想让页面的访问者知道任何更改。除了使用if语句,我相信它应该对您很好。也就是说,除非你想在后台做更多的事情。这只是加载您喜欢的任意一个文件,是ajax交互的最简化形式。读取客户端宽度并决定加载哪个文件。我编辑了代码以反映这一点。这两个文件不都会在这里调用吗?book.php和book2.php?如果希望div开始为空,那么就不会将book.php加载到html中。我假设您已经加载了book.php。我将更新脚本
    if(width == 1920){
            $("#myDiv").load("book1.php");
    } else {
            $("#myDiv").load("book2.php");
    }
<div id="book">*Contents of book.php*</div>
function onResize(width) {
    if (parseInt(width) >= 1920) {
        $.post('book2.php',function(html){
           $('#book').html(html).width(width);
        });        
    }
    else {
        $.post('book.php',function(html){
            $('#book').html(html).width(width);
        });
    }
}