【发布时间】:2020-02-14 14:54:16
【问题描述】:
我的sdk.php 文件中存储了以下函数:
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script>
function saveObject(params) {
console.log('p: ' + params);
}
</script>
在另一个 php 文件中 - index.php - 我调用该函数将输入值作为参数传递:
Text: <input type="text" name="aText" id="aText"><br>
Number: <input type="number" name="aNumber" id="aNumber"><br>
<script>
// Save object
var params = [
'tableName=' + 'Test',
'&ST_text=' + $('#aText').val(),
'&NU_likes=' + $('#aNumber').val(),
].toString().replace(/,/g, '');
</script>
<a class="btn btn-info" href="#" onclick="saveObject(params)">Save Object</a>
现在,如果我在 2 个输入文件中输入内容并点击 Save Object 按钮,这就是我在 Chrome 控制台中看到的内容:
p: tableName=Test&ST_text=&NU_likes=
为什么在我编写的字符串中没有得到aText 和aNumber 值?
我问这个是因为如果我将 params 数组移动到 saveObject() 函数中,我会得到值。
我做错了什么?
【问题讨论】:
-
您确实意识到 Javascript 不能在 .php 文件中运行??它只在 js 代码到达浏览器时运行
-
构成
params的脚本仅在页面加载时运行一次。每当用户更改输入值之一时,它都不会重建。为此,您将需要输入的更改处理程序。否则,放弃更改处理程序,只需在方法中编写params对象。
标签: javascript php jquery server