在将简单变量从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));
我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/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…