【问题标题】:Break php process for getting js variable打破获取js变量的php进程
【发布时间】:2011-10-08 21:31:37
【问题描述】:

我问了关于 PHP 破解的问题。 我需要停止执行php进程线程,而javascript执行get变量值操作(代码由php生成)。

例子:

<?php

print get("prompt('put your name here');"); 

// this will generate  $.ajax( ... data: { 'return':prompt('put your name') } ... ) 


?>

PHP 函数 ''get'' 必须打印 javascript 代码(返回标头和内容),但不要停止执行 php。他必须从浏览器观看功能的结果。 (通过 ajax 返回)。

如何在 php 代码完成后使用 TEMPORARY 输出停止 php 执行并返回查询结果。 或者...建议我解决这个问题。

(我需要同步得到提示对话框结果)

谢谢!

【问题讨论】:

  • 这不是 PHP 的工作方式。 PHP 是一种文本输出语言。它对浏览器执行它发送的代码的感知为零。您不能等待 javascript 调用完成。
  • 我需要其他方法来做到这一点 =)
  • 这有点猜测,但是如果你只是想捕获用户的名字,将它注入到某个地方的DOM(即HTML)并打印页面,你应该通过PHP输出页面并在 JavaScript 中处理其余部分。 (这就是它的用途。)

标签: php javascript jquery extjs prompt


【解决方案1】:

这不是它的工作方式 - 您需要在 PHP 中将 JavaScript 的输出和通过 Ajax 的响应作为两个单独的请求来处理。

即:一般方案如下:

  1. PHP 输出包含 JavaScript 等的相关 HTML,此 PHP 脚本的执行到此结束。

  2. 客户端 JavaScript 执行所需的处理并对服务器上的 PHP 脚本进行 AJAX 调用。这可以是相同的 PHP 脚本(您可以通过 $_GET$_POST 变量打开提供的页面“模式”),也可以是完全不同的 PHP 页面。但是,重要的是要意识到,从 PHP 的角度来看,这是一个完全不同的脚本调用。

要记住的关键是 HTTP 本质上是无状态的,因此您需要确保在 AJAX 请求中传递 PHP 脚本所需的所有相关信息。

此外,理想情况下,您应该确保为禁用 JavaScript 的用户设置了一个后备系统,尽管这些天这在一定程度上被搁置了。

【讨论】:

  • 但我需要锁定打印并通过获取(起初)。第二次执行打印(它是如何自动化的)?
  • 但它有任何问题。如果在开始'fwrite'操作...写入将执行两次! if make 'if..else' 声明(通过 GET 或 POST)我必须声明所有情况。但是我需要创建一个执行需要代码的函数...我也需要 get(get(get(...))) - 嵌套变体...我认为这个问题有任何方法...很难,但最佳
  • 我正在考虑“while”语句(它有效,但会阻止输出处理..)。虽然 ~ 无限迭代没有性能
  • @xercool 抱歉,我无法按照您的意图进行操作。您可能想提出一个新问题并概述您要解决的问题,而不是陷入听起来不可行的方法的实施细节中。
  • @xercool 就您的“while”方法而言,这听起来很不明智——PHP 在您尝试使用它的方式上并不是“交互式”的。 (一般来说,如果有意义的话,它不像基于提示的解释或事件驱动语言。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 2014-12-22
  • 1970-01-01
  • 2020-10-29
  • 1970-01-01
相关资源
最近更新 更多