Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 响应ajax方法的innerHtml_Javascript_Php_Html - Fatal编程技术网

Javascript 响应ajax方法的innerHtml

Javascript 响应ajax方法的innerHtml,javascript,php,html,Javascript,Php,Html,我正在使用ajax将数据发送到PHP脚本,并在数据库中设置查询。我的代码: HTML脚本: <span id="btn_span_<?php echo $user_id ?>"> <?php if ($online == 1) { ?> <button onclick="update_online(1,<?php echo $user_id; ?>,'btn_span_<?php echo $user_id ?&

我正在使用ajax将数据发送到
PHP
脚本,并在数据库中设置查询。我的代码:

HTML脚本

<span id="btn_span_<?php echo $user_id ?>">
      <?php if ($online == 1) { ?>
      <button onclick="update_online(1,<?php echo $user_id; ?>,'btn_span_<?php echo $user_id ?>')" class="btn-custom-delete btn btn-status">is active</button>
      <?php } elseif ($online == 0) { ?>
      <button onclick="update_online(0,<?php echo $user_id; ?>,'btn_span_<?php echo $user_id ?>')" class="btn-custom-services btn btn-status">active
      </button>
      <?php } ?>
 </span>
function update_online(status, id, span_id) {
var settings = {
     "async": true,
     "crossDomain": true,
     "url": "script_edit_status.php?status=" + status + '&id=' + id + '&span_id=' + span_id,
     "method": "GET"
};

$.ajax(settings).done(function (response) {
      var obj = JSON.parse(response);
      var btn = document.getElementById(span_id);
      if (obj.status == "1") {
            btn.innerHTML = "<button onclick='update_online(1,obj.id,obj.span_id)' class='btn-custom-services btn btn-status'>active</button>";
      } else if (obj.status == "0") {
                btn.innerHTML = "<button onclick='update_online(0,obj.id,obj.span_id)' class='btn-custom-delete btn btn-status'>is active</button>";
      }
});
}
<?php
include_once "../db/connection.php";
$id = $_GET['id'];
$status = $_GET['status'];
$span_id = $_GET['span_id'];
try {
    if ($status == 1) {
        $sql_edit_status = "update api_user set online=0 where id='$id';";
    } elseif ($status == 0) {
        $sql_edit_status = "update api_user set online=1 where id='$id';";
    }
    $conn->query($sql_edit_status);


    $status_arr = array(
        "id" => $id,
        "status" => $status,
        "span_id" => $span_id
    );

    echo json_encode($status_arr);

} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;
btn.innerHTML=“处于活动状态”;

您想再次单击“到”按钮。。。点击事件在哪里??通常它第一次执行是因为php首先运行(在js之前),它会回显结果,但从您的代码中,我看不到调用要执行的php的单击事件,因此基本上您缺少对第一部分的调用:@Sigma我想它是关于
update\u online(1,obj.id,obj.span\u id)
。当innerHTML替换新按钮时,
obj
元素不会从上一次单击更改为json回调。请尝试从内部使用update_online函数参数来获取新值。@Sigma请检查底部的答案。谢谢您的帮助。它工作得很好,但有问题。它取代了
onclick=“在线更新(0,4,btn\u span\u 4)”
。我如何替换为
onclick=“update\u online(0,4,'btn\u span\u 4')”
(为btn\u span\u 4设置“”)类似这样的内容:
btn.innerHTML=
btn.innerHTML = "<button onclick='update_online(0," + obj.id + "," + obj.span_id + ")' class='btn-custom-delete btn btn-status'>is active</button>";