Javascript Jquery为进程调用PHP?
我正在尝试比较2个文本区域的值,当您单击比较按钮时,输出将显示在3个文本区域中。因此,我想做的是,当按下按钮时,有两个输入,单击Javascript Jquery为进程调用PHP?,javascript,php,jquery,compare,Javascript,Php,Jquery,Compare,我正在尝试比较2个文本区域的值,当您单击比较按钮时,输出将显示在3个文本区域中。因此,我想做的是,当按下按钮时,有两个输入,单击PHP文件比较它们并将结果返回到第三个文本区域。我怎样才能做到这一点?下面是我的代码和JSFIDLE: 索引页 <html> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script> $
PHP
文件比较它们并将结果返回到第三个文本区域。我怎样才能做到这一点?下面是我的代码和JSFIDLE:
索引页
<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#Compare').click(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: 'Corrections.php',
data: {var1:address, var2:res},
success: function(data)
{
$var1 = $_POST['var1'];
$var2 = $_POST['var2'];
document.getElementById('address').value;
document.getElementById('res').value;
document.getElementById('cor').value='Corrections.php';
}
});
});
});
</script>
<textarea type="text" id="address"
onfocus="if(this.value===this.defaultValue)this.value=''" onblur="if(this.value==='')this.value=this.defaultValue"
>Input1</textarea>
<textarea type="text" id="res" onfocus="if(this.value===this.defaultValue)this.value=''" onblur="if(this.value==='')this.value=this.defaultValue"
>Input2</textarea>
<textarea type="text" id="cor" style="color: silver" disabled>
Output</textarea>
<div id="btn1"><input type="button" value="Compare" onClick="valbtn()"></input></div>
$(文档).ready(函数(){
$(“#比较”)。单击(函数(e){
e、 预防默认值();
$.ajax({
键入:“POST”,
url:'Corrections.php',
数据:{var1:address,var2:res},
成功:功能(数据)
{
$var1=$_POST['var1'];
$var2=$_POST['var2'];
document.getElementById('address')。值;
document.getElementById('res')。值;
document.getElementById('cor').value='Corrections.php';
}
});
});
});
输入1
输入2
输出
Corrections.php
<?php
$str1 = address;//address is textarea1 that holds one of the values to be compared
$str2 = res;//res is textarea2 were textarea1 will be compared
$tempArr;
$var2;
$ctr=0;
echo "Input:<br> $str1 <br><br>Output:<br> $str2";
$strarr = (explode(" ",$str1));
echo("<br>");
$strarr2 = (explode(" ",$str2));
echo("<br>");
if(sizeof($strarr) > sizeof($strarr2)){
$result = array_diff($strarr,$strarr2);
}else{
$result = array_diff($strarr2,$strarr);
}
if (count($result) > 0){
echo "Added:<br> | " ;
foreach ($result AS $result){
echo $result." | ";
}
}
echo "<br>";
for($i=0;$i<count($strarr);$i++) {
if (strcasecmp($strarr[$i], $strarr2[$i]) != 0)
{
$var[$ctr] = strcasecmp($strarr[$i], $strarr2[$i]);
$var2[$ctr] = $i;
$ctr +=1;
}
}
$tempArr = preg_grep('/[0-9]/',$var);
echo"<br>Changes: <br>";
for($i=0;$i<count($var);$i++) {
echo $strarr[$var2[$i]] . ' is changed to ' . $strarr2[$var2[$i]] . '<br>';
}
修改脚本:
$('#Compare').click(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: 'Corrections.php',
data: {var1: $('#address').val(), var2:$('#res').val()},
success: function(data)
{
$('#cor').val(data);
}
});
});
并修改您的php:
<?php
$str1 = $_POST['var1'];//address is textarea1 that holds one of the values to be compared
$str2 = $_POST['var2'];//res is textarea2 were textarea1 will be compared
您的AJAX调用不正确
data
参数是php文件打印的内容。你也不能写关于成功的$\u POST
,那是一个JS代码,不是PHP
您的AJAX调用应该如下所示:
$('#Compare').click(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: 'Corrections.php',
data: {var1:$('#address').val(), var2:$('#res').val()},
success: function(data)
{
document.getElementById('cor').value=data;
}
});
});
<?php
$str1 = $_POST['var1'];//address is textarea1 that holds one of the values to be compared
$str2 = $_POST['var2'];//res is textarea2 were textarea1 will be compared
PHP代码应该如下所示:
$('#Compare').click(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: 'Corrections.php',
data: {var1:$('#address').val(), var2:$('#res').val()},
success: function(data)
{
document.getElementById('cor').value=data;
}
});
});
<?php
$str1 = $_POST['var1'];//address is textarea1 that holds one of the values to be compared
$str2 = $_POST['var2'];//res is textarea2 were textarea1 will be compared
注意:我没有检查Compare.php文件,因为我假设您的比较引擎很好。JS fiddle不适用于php。PHP代码在Javascript中不起作用。查看jQuery文档,了解如何使用$.load()
。这将用Corrections.php
的输出替换所选元素的内容。打开php错误报告。您将注意到一些错误。不要在foreach中使用相同的变量名。@HarryFink当我发布我的答案时,没有答案,但现在我看到我们的答案是相同的。我决定在继续工作之前,进一步研究Jquery和Ajax的基本语法,我感谢您的评论和建议,谢谢您祝您好运:)您能将我的答案标记为“the”吗回答你的问题?只需点击答案旁边的“V”。