javascript - Jquery调用PHP进行处理?

标签 javascript php jquery compare

我正在尝试比较 2 个文本区域的值,当您单击比较按钮时,输出将显示在 3 个文本区域中。所以我想要发生的是,当单击按钮时有两个输入,PHP 文件对它们进行比较并将结果返回到第三个文本区域。我怎样才能做到这一点?下面是我的代码,这是 jsfiddle : http://jsfiddle.net/jVxhp/

索引页

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

更正.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>';    
}

最佳答案

您的 AJAX 调用不正确。

data 参数是您的 php 文件打印的内容。而且成功时也不能写$_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 代码应如下所示:

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

var1var2 是您在 AJAX 调用中调用参数的方式

data: {var1:$('#address').val(), var2:$('#res').val()},

注意:我没有检查 Compare.php 文件,因为我认为您的比较引擎没有问题。

关于javascript - Jquery调用PHP进行处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040776/

相关文章:

php - 文件上传的严格标准错误

jquery - 使用 jQuery 更改绝对定位元素的位置

jquery - JSONP 调用显示 "Uncaught SyntaxError: Unexpected token : "

javascript - 如何使用 Bootstrap Tab Collapse 插件在标签内获取 h4 标签?

javascript - jQuery 验证码匹配

php - WordPress 查询结果,其中所有列都与所选 id 的列具有相同的值

jquery - 带有 jQ​​uery/CSS 的嵌套选项卡菜单

javascript - 如何在 JavaScript 中将时间与时间字符串相加?

javascript - jQuery 脚本在 HTML 页面中不起作用

php - 如何遍历数据集中的 "window"数据?