javascript - Ajax获取内容后,我想调用另一个ajax函数

标签 javascript php mysql

我在侧边栏中创建了 ajax 调用,当我单击导航中的“颜色”时,它工作得很好,这里一切都很好。

代码是:

<a id='color'>Color</a>

Javascript 函数:

 document.getElementById('color').addEventListener('click', color);
function color(){
var xhr = new XMLHttpRequest();
xhr.open('GET', 'setting/color.php', true);
xhr.onload = function(){
if(this.status == 200){
 history.pushState(null, null, '?c=color');
 document.getElementById('content').innerHTML = this.responseText;
} else if(this.status = 404){
  document.getElementById('content').innerHTML = 'Not Found';
}
}
xhr.onerror = function(){
console.log('Request Error...');
}
xhr.send();
}

在它之后,我想要在颜色页面上这段代码,它在color.php上,这是来自ajax调用的。

            <div class="f-col s1 m1 l1">
                <label class="container f-padding">
                  <input class="cols" type="radio" name="cols" value="dark light-hover">
                  <span class="checkmark dark"></span>
                </label>
            </div>


            <div class="f-col s1 m1 l1">
                <label class="container f-padding">
                  <input class="cols" type="radio" name="cols" value="light dark-hover" checked="checked">
                  <span class="checkmark light"></span>
                </label>
            </div>

Javascript 函数在这里:

var colito = document.getElementsByClassName('cols');

var i;
for(i=0;i < colito.length;i++){
colito[i].addEventListener('click', colorSid);
function colorSid(e){
  e.preventDefault();
  var cols = this.value;
  var params = "cols="+cols;

  var xhr = new XMLHttpRequest();
  xhr.open('POST', '../phppath/color.php', true);
  xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  xhr.onload = function(){
    console.log(this.responseText);
  }
  xhr.send(params);
}
}

如果我不刷新页面就不起作用,有人知道什么问题吗?

最佳答案

您必须将 html 保存在 color.php 中的字符串中并回显它。

$html = '<div class="f-col s1 m1 l1">
            <label class="container f-padding">
              <input class="cols" type="radio" name="cols" value="dark light-hover">
              <span class="checkmark dark"></span>
            </label>
        </div>


        <div class="f-col s1 m1 l1">
            <label class="container f-padding">
              <input class="cols" type="radio" name="cols" value="light dark-hover" checked="checked">
              <span class="checkmark light"></span>
            </label>
        </div>';

echo $html;

关于javascript - Ajax获取内容后,我想调用另一个ajax函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51514214/

相关文章:

MySql-在添加了字符串的重复键插入上

mysql - 为什么这个 MySQL 查询会产生错误的行号?

javascript - 如何在 Javascript 中提醒 PHP echo

javascript - 我想制作一个在滚动时触发 css 动画的网站,没有垂直或水平移动。这可能吗?

PHP:在每次加载时扫描目录以查找文件

php - WordPress 新插件问题

Php变量不保存数据

javascript - 有条件地加载 javascript(外部和内部)并保持执行顺序

javascript - 将对象数组转换为字符串数组?

mysql workbench 6.3.6 崩溃 mac os x el Capitan 10.11.4