Javascript Jquery为进程调用PHP?

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> $

我正在尝试比较2个文本区域的值,当您单击比较按钮时,输出将显示在3个文本区域中。因此,我想做的是,当按下按钮时,有两个输入,单击
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”。