我有一个foo发出Ajax请求的函数.我怎样才能从中回复foo?
我尝试从success回调中返回值,并将响应分配给函数内部的局部变量并返回该变量,但这些方法都没有实际返回响应.
function foo() {
var result;
$.ajax({
url: '...',
success: function(response) {
result = response;
// return response; // <- I tried that one as well
}
});
return result;
}
var result = foo(); // It always ends up being `undefined`.
Run Code Online (Sandbox Code Playgroud) 我经常CDATA在XML文件中找到这个奇怪的标签:
<![CDATA[some stuff]]>
Run Code Online (Sandbox Code Playgroud)
我观察到这个CDATA标签总是在开头,然后是一些东西.
但有时它被使用,有时则不然.我假设它是标记some stuff那将在之后插入的"数据".但是什么样的数据some stuff呢?我在XML标签中写的东西不是某种数据吗?
如何将PHP变量的值转换为字符串?
我正在寻找比用空字符串连接更好的东西:
$myText = $myVar . '';
Run Code Online (Sandbox Code Playgroud)
就像ToString()Java或.NET中的方法一样.
我有这个代码:
<script type="text/javascript">
var foo = 'bar';
<?php
file_put_contents('foo.txt', ' + foo + ');
?>
var baz = <?php echo 42; ?>;
alert(baz);
</script>
Run Code Online (Sandbox Code Playgroud)
为什么这不会在我的文本文件中写入"bar",但警告"42"?
注意:此问题的早期修订明确是关于服务器上的PHP和客户端上的JavaScript.问题和解决方案的本质是相同的任何对当一个客户端上运行的语言和其他服务器上.当你看到有关特定语言的答案时,请考虑到这一点.
编码PHP字符串以输出到JavaScript变量的最简单方法是什么?
我有一个PHP字符串,其中包括引号和换行符.我需要将此字符串的内容放入JavaScript变量中.
通常,我只是在PHP文件中构建我的JavaScript,àla:
<script>
var myvar = "<?php echo $myVarValue;?>";
</script>
Run Code Online (Sandbox Code Playgroud)
但是,当$myVarValue包含引号或换行符时,这不起作用.
在JavaScript中读取cookie的最短,准确和跨浏览器兼容的方法是什么?
通常,在构建独立脚本(我不能拥有任何外部依赖项)时,我发现自己添加了一个用于读取cookie的函数,并且通常会回退到QuirksMode.orgreadCookie()方法(280字节,216缩小).
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
它完成了这项工作,但它的丑陋,每次都增加了相当多的膨胀.
jQuery.cookie使用这样的方法(修改,165字节,125缩小):
function read_cookie(key)
{
var result;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? (result[1]) : null;
}
Run Code Online (Sandbox Code Playgroud)
请注意,这不是"Code Golf"竞赛:我有理由减少readCookie功能的大小,并确保我的解决方案有效.
我想使用表单中的隐藏输入将JavaScript变量传递给PHP.
但我不能得到的价值$_POST['hidden1']为$salarieid.有什么不对?
这是代码:
<script type="text/javascript">
// View what the user has chosen
function func_load3(name) {
var oForm = document.forms["myform"];
var oSelectBox = oForm.select3;
var iChoice = oSelectBox.selectedIndex;
//alert("You have chosen: " + oSelectBox.options[iChoice].text);
//document.write(oSelectBox.options[iChoice].text);
var sa = oSelectBox.options[iChoice].text;
document.getElementById("hidden1").value = sa;
}
</script>
<form name="myform" action="<?php echo $_SERVER['$PHP_SELF']; ?>" method="POST">
<input type="hidden" name="hidden1" id="hidden1" />
</form>
<?php
$salarieid = $_POST['hidden1'];
$query = "select * from salarie where salarieid = ".$salarieid;
echo $query;
$result = mysql_query($query);
?> …Run Code Online (Sandbox Code Playgroud) 我试图将PHP数组变量放入JavaScript变量中.
这是我的代码:
<html>
<head>
<script type="text/javascript">
function drawChart(row,day,week,month,date)
{
// Some code...
}
</script>
</head>
<body>
<?php
for($counter = 0; $counter<count($au); $counter++)
{
switch($au[$counter]->id)
{
case pageID.'/insights/page_active_users/day':
$day[] = $au[$counter]->value;
break;
case pageID.'/insights/page_active_users/week':
$week[] = $au[$counter]->value;
break;
case pageID.'/insights/page_active_users/month':
$month[] = $au[$counter]->value;
break;
}
}
?>
<script>
drawChart(600/50, '<?php echo $day; ?>', '<?php echo $week; ?>', '<?php echo $month; ?>', '<?php echo createDatesArray(cal_days_in_month(CAL_GREGORIAN, date('m',strtotime('-1 day')), date('Y',strtotime('-1 day')))); ?>');
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我无法获得PHP数组的价值.
我该如何解决这个问题?
我配置了PHP,以便启用魔术引号并关闭注册全局变量.
我会尽力为我输出的任何来自用户输入的内容调用htmlentities().
我偶尔也会搜索我的数据库,以获取xss附带的常用内容,例如......
<script
Run Code Online (Sandbox Code Playgroud)
我还应该做些什么,以及如何确保我要做的事情总是完成.
我可以使用Javascript访问PHP var,如下所示:
<?php
$fruit = "apple";
$color = "red";
?>
<script type="text/javascript">
alert("fruit: " + "<?php echo $fruit; ?>"); // or shortcut "<?= $fruit ?>"
</script>
Run Code Online (Sandbox Code Playgroud)
但是如果我想使用外部JS文件怎么办:
<script type="text/javascript" src="externaljs.js"></script>
Run Code Online (Sandbox Code Playgroud)
externaljs.js:
alert("color: " + "<?php echo $color; ?>");
Run Code Online (Sandbox Code Playgroud) javascript ×7
php ×7
variables ×2
ajax ×1
asynchronous ×1
cdata ×1
client-side ×1
cookies ×1
escaping ×1
external ×1
jquery ×1
newline ×1
security ×1
server-side ×1
string ×1
xml ×1
xss ×1