将参数从php文件传递到javascript文件 - javascript

在将简单变量从php传递到javascript文件时,我遇到了一些麻烦。

我有一个通过php文件提交的表单,该文件基本上更新了服务器端的记录。如果更新成功,我只想将消息传递回javascript,可以在页面的特定部分进行更新。

我的代码是:

Javascript代码-abc.js

 function expand_cards(project, SlNo)
 {
    name = project['project_name'];
    j = "ShowForm-"+SlNo+"";

        s = "<div class='edit_project_card'>";
        s += "<form method='post' action='Edit_Project.php'><div class='project_form'>
        // Form Contents
        s += "<div class='Form_button'> <input type='submit'> </div>";
        s += "</form></div>";

    $("#"+j+"").html(s);
    response = $.parseJSON(data);
    $("#"+j+"").html(response);
}

PHP文件-Edit_Project.php

<?php

//The updation stuff at the server end

if (!mysqli_query($connection,$sqlquery)) {
  $response = "'Error in your code: ' . mysqli_error($connection)";
}
else {
$response = "1 record updated";
}

echo json_encode($response);
mysqli_close($connection);
?>

但是问题在于屏幕正在按原样打印$ response变量,而没有按要求将其准确地传递回javascript函数。我知道我可以使用$ .post函数,它可以接收参数,但是它的格式很长,因此很难传递参数。

有人可以帮我吗?

谢谢

参考方案

由于您是直接将表单提交到PHP文件,因此浏览器将像正常页面一样加载Edit_Project.php文件。如果要对已加载的页面进行json响应,则必须使用$.post$.ajax

您可以简单地通过使用serialize()发布整个表单,如下所示:

  $('#form_id')。on('submit',function(e){
    //停止浏览器发布表单
    e.preventDefault();

    //通过Ajax发布表单
    $ .ajax({
      url:'Edit_Project.php',
      类型:“ POST”,
      数据:$(this).serialize(),
      成功:功能(响应){
        //在这里进行HTML更新
        $(“#” + j +“”)。html(response.reply);
      }
    });
  });

还需要更改Edit_Project.php:

//服务器端的更新内容

如果(!mysqli_query($ connection,$ sqlquery)){
  $ response =“'代码错误:'。mysqli_error($ connection)”;
}
其他{
$ response =“已更新1条记录”;
}
mysqli_close($ connection);

/ *
 *正如SuperDJ所建议的,您需要告诉浏览器
 *接收到JSON对象,尽管他确实使用了错误的内容类型:
 * /
header('Content-Type:application / json');

/ *
 *根据php.net,大多数解码器应将简单字符串处理为
 * json对象,但为了安全起见,始终对数组或对象进行编码,因为
 *您不知道解码器将如何响应。
 * /
回声json_encode(array('reply'=> $ response));

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

PHP Javascript更改浏览器后退按钮行为Laravel - javascript

我知道有各种各样的线程要求几乎相同的要求,但似乎没有一个真正满足我的需求。在我的网站上,我实现了搜索表单。一个简单的表单,其中包含一个名为searchQuery的输入字段和一个提交按钮。表单通过POST方法发送。我正在使用Laravel btw。。然后将搜索结果从控制器加载到视图中。这些在表中显示。现在来了有趣的部分:找到的元素是可单击的,并且您进入有关该元…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

使用JS和PHP更改弹出窗口背景图像 - javascript

我有一个JS函数:function zoom(now) { document.getElementById("popup").style.display = "block"; document.getElementById("photos").style.backgroundImage = …

执行onclick时获得意外令牌 - javascript

我正在使用onclick事件从PHP调用JS函数。这是我的代码:我在一个函数中,因此我需要通过PHP来完成它,因为然后我会返回:$html = '<input type="checkbox" checked value="1" id="setGetSku" name="se…