Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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
Javascript js中的HTML和PHP_Javascript_Php_Html - Fatal编程技术网

Javascript js中的HTML和PHP

Javascript js中的HTML和PHP,javascript,php,html,Javascript,Php,Html,Bellow是我的php函数,它获取访问者的配置文件图像 <?php echo voip_profile_image($visitorid,'thumb'); ?> 问题是$visitorid存储在JS中的sRemoteid参数下。bellow由于我对JS的了解非常贫乏,所以我想出了一个脚本,当然我无法使用它: $('.incoming-call-alert .photoarea').html('<img src="<?php echo voip_profile_i

Bellow是我的php函数,它获取访问者的配置文件图像

<?php echo voip_profile_image($visitorid,'thumb'); ?>

问题是$visitorid存储在JS中的sRemoteid参数下。bellow由于我对JS的了解非常贫乏,所以我想出了一个脚本,当然我无法使用它:

$('.incoming-call-alert .photoarea').html('<img src="<?php echo voip_profile_image("'+sRemoteid+'","thumb"); ?>" class="client-profile-image-thumb">');
$('.incoming call alert.photoarea').html(''class=“client profile image thumb”>');
预期的结果应该是这样的,基本上我所需要做的就是将visitorid从JS放到我的html脚本中。因为它没有被存储,也没有任何其他选项将它存储在JS文件以外的任何地方

<div class="incoming-call-alert">
  <div class="photoarea">
    <img src="<?php echo voip_profile_image(visitorid,'thumb'); ?>" class="client-profile-image-thumb">
  </div>
</div>

“class=”客户端配置文件图像拇指“>
代码流如下所示

首先执行PHP,并返回HTML页面 HTML被发送到浏览器 然后浏览器将执行javascript

你不能打破这种流动

如果您想通过Javascript更改任何内容,那么必须通过ajax从php获取数据,然后更改dom


通过ajax,您应该执行
voip_profile_image($visitorid,'thumb')
通过在
POST
GET
中发送
sRemoteid
变量,然后通过js更改
img
dom

听起来您的脚本中有这样的内容:

var sRemoteid = 123;
这个变量只存在于浏览器的内存中,在服务器上的PHP代码运行并创建HTML之后很久。如果您想基于JS变量在服务器上执行某些操作,则必须向服务器发出新请求。如果使用AJAX,则无需导航到页面或发送表单即可完成此操作。jQuery有
$.ajax
等,还有
fetch()

但是,因为这是关于显示图像的,所以在这里直接请求图像更为明智,而不需要之前对URL进行AJAX调用。创建为映像提供服务的PHP端点:

<?php
$imageid = $_GET['id'];
$thumbnail = /* logic here to find path to file */
// load image file
$png = imagecreatefrompng($thumbnail);
// serve image file
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);


一种方法是设置一个id=something的隐藏输入,并将其值设置为与js变量相同的值。然后使用$(#something).val()获取值并运行$.ajax将该值传递到php函数中。

实际代码中是否有这些星号?可能不会吧?请显示您的实际代码。您不能倒转,看有代码流:-jQuery行内联代码在PHP文件中吗?或者它是JS文件的一部分?OP:你一直在编辑你的问题,但你的代码中仍然有星号,我认为它实际上不应该在那里。请您阅读并对收到的评论作出反应好吗?如果您想从服务器获取信息,您需要javascript向服务器发出HTTP请求以获取该数据。从技术上讲,你可以让一些PHP将一些值写入javascript,但你不能编写可执行代码,这是没有意义的。这基本上是正确的,但OP正在尝试的是,如果他们a)修复语法b)jQuery行在PHP文件中,那么它将起作用。IMHO,这更适合作为注释。他正试图通过JS更改DOM,并在其中添加PHP。请让我知道php将如何执行@克里斯吉没有否决你的答案。我想你是对的,因为
sRemoteid
是一个JS变量。但是根据它的起源,OP试图做的可能有更好的解决方案。好的,对不起。通过ajax,他应该执行
voip_profile_image($visitorid,'thumb')
在POST或GET中发送
sRemoteid
变量,然后通过jsMy更改
img
dom。我的观点是不需要隐藏输入和
.val()
调用。可以直接传递Yes值。感谢您的指导Yes我使用jQuery,若我从你们的评论和本指南中理解正确,那个么有可能从js文件将变量传递给我的php文件吗?你能详细地告诉我该怎么做吗。使用JS将
添加到第2页。在PHP文件中,获取id并提供图像。你到底需要哪些细节?您知道如何在PHP中处理GET参数,对吗?现在很清楚了,我想我可以在不创建其他文件的情况下传递值。我将尝试在我的代码中实现上述内容。我不知道PHP的其余部分是如何设置的,但您不需要另一个文件;理论上,您可以将该PHP代码添加到现有文件中。
var $img = $("<img>").addClass("client-profile-image-thumb"); // use proper jQuery to create <img>
$img.attr("src", "/client_profile_thumb.php?id=" + sRemoteid); // set src using endpoint URL
$('.incoming-call-alert .photoarea').append($img);