Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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 Jquery和php:如何控制反馈?_Javascript_Php_Jquery_Ajax_Feedback - Fatal编程技术网

Javascript Ajax Jquery和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

假设您通过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 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+/,“”);非常感谢!