1

我有一个接受参数的 php 页面,例如

mypage.php?keyword=SOMEVALUE

但是关键字是用户在使用 jQuery 运行的 html 表单中输入的 ajax 值。

我需要让用户在文本字段中输入值,并从中检索数据mypage.php并将其设置为 field1 的值。

我该怎么做?我看到一些网站提到 javascript 尊重同源政策,我该怎么办?

现在我有2个文件

再次更新

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>demo</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

       <script type="text/javascript">
            $(document).ready(function(){
                $("#filter").click(function(){{
                    var self = this;
                    //The following mostly from Olaf's answer
                    $.ajax({
                        url         :   'jquery2.php',
                        dataType    :   "html",/* JSON, HTML, SJONP... */
                        type        :   "get", /* POST or GET; Default = GET */
                        data:{
                            keyword     :   $(keyword).val() /* $(self) = $("#keyword") */
                        },
                        success     :   function( response )
                        {
                            /*
                            *    on input
                            */
                            $("#keyword").val( response )
                            /*
                            *    on html
                            */
                            $("#newhtml").html( response )
                        }
                    });
                });
            });
        </script>


    </head>
    <body>
        <input type="text" name="keyword" id="keyword" />
        <input type="button" id="filter" name="filter" value="Search Data" />
        <div id="newhtml"></div>
    </body>
</html>

jquery2.php

<?php
$keyword = $_GET['keyword'];

echo "keyword is " . $keyword;


?>

我将我的 jquery.php 更改为此代码。但仍然无法从 jquery2.php 检索输出,文本字段值不会更改为 jquery2.php 输出。

感谢您的帮助

4

4 回答 4

2

我建议使用 jQuery 的 ajax 方法,因为这会使事情变得更容易。假设您的 php 页面是这样的:

PHP

$keyword = $_GET['keyword'];

if ($keyword == "SOMEVALUE") {
echo "returned value";
}

你的html是这样的:

HTML

<input type='text' name='keyword' id='keyword' />

那么你的javascript应该是这样的:

Javascript

$(document).ready(function(){
  $("#keyword").change(function(){
    var newValue;
    //The following mostly from Olaf's answer
    $.ajax({
      url         :   'index.php',
      dataType    :   "html",/* JSON, HTML, SJONP... */
      type        :   "get", /* POST or GET; Default = GET */
      data:{
          keyword     :   "SOMEVALUE"
      },
      success     :   function( response )
      {
          newValue = response;
      }
    });
    $(this).val(newValue);
  });
});
于 2013-10-02T18:48:35.230 回答
1

尝试:

jQuery:

$(document).ready(function(){

    $.ajax({
        url         :   'index.php',
        dataType    :   "html",/* JSON, HTML, SJONP... */
        type        :   "get", /* POST or GET; Default = GET */
        data:{
            keyword     :   "SOMEVALUE"
        },
        success     :   function( response )
        {
            console.log( response ) ;
        }
    });

})

PHP:

<?php

if( array_key_exists( "keyword" , $_GET ) )
{
    if( !empty( $_GET["keyword"] ) )
    {
        echo "<p>Woooow ajax!</p>";
    }
}
?>

使用 PHP 获取“某些值”:

echo $_GET["keyword"]

使用 jQuery 获取“某些值”:

data:{
    keyword: $( "input" ).val()
}

或在您的 JQUERY 中使用 PHP:

<?php
if( array_key_exists( "keyword" , $_GET ) )
{
    $keyword = htmlentities ($_GET["keyword"],ENT_COMPAT,'UTF-8', true );
    $keyword = str_replace("'","\'",$keyword);
    echo "var keywordValue =  '" . $keyword."';"
}else{
    echo "var keywordValue = '';";
}
?>
data:{
    keyword: keywordValue
}

你的代码编辑了:

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>demo</title>
        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>

        <script type="text/javascript">
            $(document).ready(function(){
                $( "#search" ).submit(function(){

                    /**
                    * Send ajax
                    */
                    $.ajax({
                        url         :   'jquery2.php',
                        dataType    :   "html",/* JSON, HTML, SJONP... */
                        type        :   "get", /* POST or GET; Default = GET */
                        data:{
                            keyword     :   $( self ).val() /* $(self) = $("#keyword") */
                        },
                        success     :   function( response )
                        {
                            /**
                            * Get Data and set on field2
                            */
                            $("#filter").val( response )
                        }
                    });


                    /* prevent event */
                    return false;
                });
            });
        </script>
    </head>
    <body>
        <input type="text" name="keyword" id="keyword" />
        <input type="hide" name="filter" id="filter" />
        <input type="submit" value="Go!" />
    </body>
</html>
于 2013-10-02T18:37:15.207 回答
1

在 PHP 中,您必须检索关键字

$keyword = $_GET['keyword'];

然后,假设您通过 PHP 输出 HTML 和 JavaScript(在脚本元素内),

$.ajax({
    url: 'mypage.php',
    type: 'GET',
    data: {
        keyword: '<?php echo $keyword; ?>'
    },
    success: function (data) {
        // Display the result in the "field1"
        $('#field1').val(data);
    }
});
于 2013-10-02T18:45:27.667 回答
1

假设您有以下文本输入

<input type = "text" id = "name"/>

然后使用以下ajax代码

$.ajax({
    url: 'mypage.php?keyword='+$("#name").val(),
    type: 'GET',
    success: function (data) {$("#name").val(data);}
});
于 2013-10-02T18:49:56.387 回答