在JavaScript中获取php变量 - 选项
在JavaScript中获取php变量 - 选项
我知道有类似的问题,但是我对它们有一些疑问,因为它们提到了几种可能性,我不确定哪种最适合我的情况。
我有一个表单,其中有一个部分可以输入一个xml文件的名称,然后使用php生成该文件。文件的名称存储在一个php变量中。为了访问xml文件,我想在JavaScript中获取php变量的值。
根据我所了解的,有几种可能性:
一种是Ajax请求。我的问题是:我尝试按照这个教程(https://www.w3schools.com/xml/ajax_php.asp)进行操作。然而,我不完全理解这个教程。
- 首先,在第一个示例中,“this”是什么意思?(例如this.responseText)
- 其次,在xmlhttp.open()中为什么是“gethint.php?q=” + str,而不是简单地“gethint.php”?
- 最后,$q = $_REQUEST["q"];告诉我什么?我知道这是声明了某种变量,但我不明白它的具体作用。
我还了解到你可以使用cookies,但在我的情况下是否有意义?
如果需要进一步的信息,请告诉我,非常感谢您的回复。
编辑:下面是我试图遵循的代码:
HTML:
在输入框中开始输入一个名称:建议:
PHP:
// 从URL获取q参数 $q = $_REQUEST["q"]; $hint = ""; // 如果$q不为空,则从数组中查找所有的提示 if ($q !== "") { $q = strtolower($q); $len=strlen($q); foreach($a as $name) { if (stristr($q, substr($name, 0, $len))) { if ($hint === "") { $hint = $name; } else { $hint .= ", $name"; } } } } // 如果未找到提示,则输出“无建议”,否则输出正确的值 echo $hint === "" ? "无建议" : $hint; ?>
$a是一个包含名称的数组,为了节省空间,我没有在提取的内容中包含它。
这是我的代码:
HTML:
附加到我:
JavaScript:
function alertFunction() { var xhttp; var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var filename = xhttp.responseText; alert(filename); } }; xhttp.open("GET", "profile3.php?q=", true); xhttp.send(); };
PHP:
$filename被声明为我的xml文档的名称。我没有包含那段代码,因为我知道那不是问题所在。
问题的出现原因:
1. 首先,在第一个示例中,“this”是什么?(例如this.responseText)
这是一个简单的问题,“this”求值为当前执行上下文的ThisBinding的值;
2. 其次,“为什么在xmlhttp.open()中是“gethint.php?q=” + str,而不是简单地“gethint.php”?
这只是将输入值传递给服务器以获取匹配结果。这将被视为GET方法;
3. 最后,“$q = $_REQUEST["q"];”告诉我什么?我知道这是声明某种变量,但我不明白它具体是做什么。
这是用于从POST/GET方法中获取值的php代码。根据第2点,参数被传递到服务器。可以使用$_REQUEST["q"]
从服务器访问它。
解决方法:
1. 确定“this”关键字的作用和值;
2. 确定传递给服务器的参数;
3. 使用$_REQUEST["q"]
从服务器获取参数的值。
问题的原因是用户想要在JavaScript中获取PHP变量的值。他们在代码中尝试了一些方法,但没有成功。
解决方法是使用AJAX来实现。用户需要编写一个包含PHP变量值的PHP脚本,并通过AJAX请求获取该值。
以下是解决方法的步骤:
1. 在PHP脚本中,将要获取的变量赋值给一个变量,如$q = $_REQUEST["q"]。
2. 确保PHP脚本能够正确接收到参数。可以通过在URL中传递参数,如"gethint.php?q=something"。
3. 在JavaScript中,使用XMLHttpRequest对象来发送AJAX请求。
4. 在AJAX请求的URL中传递参数,如"gethint.php?q=" + str。
5. 在AJAX请求的回调函数中,可以通过this.responseText来获取PHP脚本的响应。
注意:在实际应用中,可能需要对传递的参数进行安全性检查和验证。
希望这篇文章对你有帮助!