Javascript Ajax Jquery和php:如何控制反馈?
假设您通过ajax发送数据。服务器将处理它(PHP)并发送反馈,您可以使用Javascript Ajax Jquery和php:如何控制反馈?,javascript,php,jquery,ajax,feedback,Javascript,Php,Jquery,Ajax,Feedback,假设您通过ajax发送数据。服务器将处理它(PHP)并发送反馈,您可以使用Complete:function(data){//WRITE HTML TO DIV$('#somehing').HTML(data)} 问题是: 在将数据传递给html元素之前,是否有方法修改数据(编辑、删除) 这里有一个简单的例子来说明我的意思: //php side echo 'Invalid email'; echo 'Enter your username'; echo 'fine'; echo 1; echo
Complete:function(data){//WRITE HTML TO DIV$('#somehing').HTML(data)}
问题是:
在将数据传递给html元素之前,是否有方法修改数据(编辑、删除)
这里有一个简单的例子来说明我的意思:
//php side
echo 'Invalid email';
echo 'Enter your username';
echo 'fine';
echo 1;
echo 2;
// Jquery and Ajax
$.ajax({
type: 'POST',
url: 'render.php',
data:values,
complete: function(data) {
$('#something').html(data) /* all those messages in php will be printed
into #something including the numbers. how to delete or edit those numbers
from appearing in #something? */
}
});
数据基本上是以字符串的形式返回的,就像你说的那样“以“html”的形式接收”。你应该能够使用简单的javascript直接控制它,例如,我有时做事情的方式是: PHP返回类似以下内容:
echo $variable_1 . ":" . $variable_2
然后当我把它作为数据时,它只是一个字符串,表示
variable 1:variable 2
接下来我要做的是用冒号分隔变量
var var1 = data.split(":")[0];
var var2 = data.split(":")[1];
这只是一个简单的例子。我不确定您返回的是什么,但似乎您正在搜索1
索引,而不是“1”
。这可能会有所不同。尝试在引号中搜索1,这将是在字符串中搜索。尝试此操作以删除以下数字:
complete:function(data){
data=data.replace(/\d+/,''); // Regular expression without quotation marks.
// or you can replace the something text like
// $('#something').text(function(){
// return this.innerText.replace(/\d+/,'');
// });
alert(data);
}
您是如何收到回复的?它是html标记吗?或者json?如果您将其作为html
接收,那么我将其作为'html'接收,然后将其包装为,If($(data).find('myElement').text().match('/[0-9]/'){//numbers}
服务器端脚本如何返回数组?您是说它正在返回数组html@RohanKumar.indexOf()
也是一种字符串方法。感谢ntgCleaner,在我的例子中,我有很多字符串:大多数是错误消息(例如,如果用户发送了无效电子邮件:它返回字符串“invalid email”),但也有数字(在php中,我不带引号地回显它们,例如:echo 1;)我想将它们用于其他用途,但我不希望它们显示错误消息。这就是为什么我要询问控制返回数据的方法。是的split:P我也这样做,即使它不成熟:Dit有效!正则表达式周围没有引号:(/\d+/,“”);非常感谢!