如何从PHP文件Jquery获取价值?

时间:2016-12-20 13:20:00

标签: javascript php jquery

我现在有这个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;
&#13;
&#13;

results得到了&x; xxxx&#39;作为价值。
我得到了xxxx&#39;已进入警报框,但我需要在javascript中将其分配到var texts 我不知道该怎么做。
有人知道怎么做吗?

Index.php得到了:

<?php
    $var = "xxxx";
    echo json_encode($var);
?>

请帮帮我!

2 个答案:

答案 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);
  }
});