gpt4 book ai didi

JavaScript/不知道如何使用变量

转载 作者:行者123 更新时间:2023-11-28 00:09:30 25 4
gpt4 key购买 nike

我刚刚创建了检查按钮,该按钮的 onclick 执行 ajax 脚本,该脚本将数据发送到 php 并将 php 发送到数据库。我需要它以正确的 task_log_task 发送(它是任务的 id)。我在这个文件中找到的类似脚本在这里,当编辑右行时:

$canEdit = getPermission('tasks', 'edit', $a['task_id']);
$canViewLog = getPermission('task_log', 'view', $a['task_id']);
if ($canEdit) {
$s .= ("\n\t\t".'<a href="?m=tasks&amp;a=addedit&amp;task_id=' . $a['task_id'] . '">'
. "\n\t\t\t".'<img src="./images/icons/pencil.gif" alt="' . $AppUI->_('Edit Task')
. '" border="0" width="12" height="12" />' . "\n\t\t</a>");
}

如您所见 task_id=' 。 $a['task_id'] 。 '。所以我创建了那个检查按钮

$currentTasken=$a['task_id'];
$currentUser=$AppUI->user_id;
echo $currentTasken;
if ($canEdit) {
$s .= ("\n\t\t".'<a href="#">'
. "\n\t\t\t".'<img src="./images/icons/tick.png" alt="' . $AppUI->_('Check')
. '" border="0" width="12" height="12" onclick="javascript:insertData('. $currentTasken .', '.$currentUser.')" />' . "\n\t\t</a>");
}
$s .= "\n\t</td>";

我做了这个$currentTasken=$a['task_id']; $currentUser=$AppUI->user_id; 并尝试将当前数据发送到我的 ajax 脚本,如下所示 javascript:insertData('. $currentTasken .', '.$currentUser.')" 但是当我在 FireBug 中看到:

Parametersapplication/x-www-form-urlencodedDo not sort
currentTasken
$currentTasken
currentUser
$currentUser
Source
currentUser=$currentUser &currentTasken=$currentTasken

是这个吗。这是我的 ajax 脚本:

<script type="text/javascript">


function insertData($currentTasken, $currentUser)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST","modules/tasks/datafile.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("currentUser=$currentUser &currentTasken=$currentTasken");
}

</script>

最佳答案

您的 JavaScript 代码无法访问这两个变量,因为 JS 和 PHP 位于不同的位置(分别位于用户的浏览器和服务器上)。

所以您需要做的是让 JavaScript 可以访问这些 PHP 变量。为此,一个简单的方法是将它们打印在您的 <script> 中。标签如下所示。

xmlhttp.send ,您还需要确保使用这些新变量:

<script type="text/javascript">

// Note that you should use `json_encode` to make sure the data is escaped properly.
var currentTasken = <?php echo json_encode($currentTasken=$a['task_id']); ?>;
var currentUser = <?php echo json_encode($currentUser=$AppUI->user_id); ?>;

function insertData(currentTasken, currentUser)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST","modules/tasks/datafile.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

// Here, use the JS variables but, likewise, make sure they are escaped properly with `encodeURIComponent`
xmlhttp.send("currentUser=" + encodeURIComponent(currentUser) + "&currentTasken=" + encodeURIComponent(currentTasken));
}

</script>

编辑:我发现您实际上已经通过 PHP 发送了这些变量,但是同样,您需要使用 json_encode 来转义它们。 (目前,我认为生成的JS代码无效),然后将它们正确插入到xmlhttp.send

关于JavaScript/不知道如何使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31026423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com