我现在有这个javascript / jquery代码:
我可以从我的php文件中获取值,但我只能在警告框中显示它
我喜欢将此值(结果)设置为"文本"所以它将显示在我的弹出窗口中。
var script = document.createElement('script');
script.src = 'http://code.jquery.com/jquery-1.11.0.min.js'; // jquery
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
window.onload = addElement;
function addElement() {
// create a new div element
// and give it popup content
var newDiv = document.createElement("div");
var texts;
/////////////////////////////////////////////////////////////////////////////////////////
$(document).ready(function() {
$.ajax({
url:"index.php",
success:function(result){
texts = result; // does not work
}
});
});
/////////////////////////////////////////////////////////////////////////////////////////
newDiv.innerHTML += '<div id="popup" style=" position: fixed;top: 15%;width: 800px;height: 200px;margin: auto;z-index: 99999;display: block;left:25%;background-color: #fff; border: 1px solid #ddd; border-radius: 5px; box-shadow: 0 1px 6px 4px #000; overflow: hidden; padding: 10px;"><div class="popup_body" style=" height: 160px;">' + texts + '</div><button style="padding: 10px;" class="close_button"onClick="closePopup()">Sluiten</button><button style="padding: 10px;" class="close_button"onClick="tostoring()">Meer Informatie</button></div>';
// Add The Background cover
var BG = document.createElement("div");
BG.style.width = '100%';
BG.style.height = '100%';
BG.style.background = 'black';
BG.style.position = 'fixed';
BG.style.top = '0';
BG.style.left = '0';
BG.style.opacity = '0.7';
BG.style.zIndex = '99900';
BG.style.display = 'none';
BG.setAttribute("id", "bgcover");
// add the newly created elements and its content into the DOM
document.body.appendChild(BG);
document.body.insertBefore(newDiv, BG);
// open popup onload
openPopup();
}
function openPopup() {
var el = document.getElementById('popup');
var BG = document.getElementById('bgcover');
el.style.display = 'block';
BG.style.display = 'block';
}
function tostoring() {
window.location.href = 'http://localhost/Sms%20management%20systeem/testing/storing.php';
}
function closePopup() {
var el = document.getElementById('popup');
var BG = document.getElementById('bgcover');
el.style.display = 'none';
BG.style.display = 'none';
}
&#13;
results
得到了&x; xxxx&#39;作为价值。
我得到了xxxx&#39;已进入警报框,但我需要在javascript中将其分配到var texts
我不知道该怎么做。
有人知道怎么做吗?
Index.php得到了:
<?php
$var = "xxxx";
echo json_encode($var);
?>
请帮帮我!
答案 0 :(得分:2)
它确实有效,但是ajax调用是异步的,因此javascript将进行调用并转到下一行。当您尝试在弹出框中使用该变量时,调用尚未完成,您的变量将为空。
您应该在ajax调用之后将代码移动到success函数内部,因为只有您知道ajax调用已成功完成。
您在window.onload
上调用函数时也不需要文档(就绪)块,因此DOM已经准备就绪。
您应该/也可以将css移动到外部css文件,因为这将更容易维护和共享。
function addElement() {
// create a new div element
// and give it popup content
var newDiv = document.createElement("div");
var texts;
$(document).ready(function() {
$.ajax({
url:"index.php",
success:function(result){
texts = result; // does not work
newDiv.innerHTML += '<div id="popup"><div class="popup_body">' + texts + '</div><button class="close_button"onClick="closePopup()">Sluiten</button><button class="close_button"onClick="tostoring()">Meer Informatie</button></div>';
// Move all the css to an external css file
// add the newly created elements and its content into the DOM
document.body.appendChild(BG);
document.body.insertBefore(newDiv, BG);
// open popup onload
openPopup();
}
});
});
}
答案 1 :(得分:0)
当您使用json_encode
在index.php文件中查询结果时,您必须按如下方式解码结果:
$.ajax({
url:"index.php",
success:function(result){
var obj = $.parseJSON(result);
console.log(obj);
}
});