如何使用AJAX获取输入字段的值并将其传递给PHP字符串?

时间:2013-01-07 12:34:51

标签: javascript html ajax

我是JavaScript的新手,所以原谅我缺乏知识。

我正在尝试对联系表单进行编码,并希望在访问者使用AJAX输入的值后立即获取在特定输入文本字段中输入的值,并将其传递给PHP字符串,以便我可以显示相关信息在点击提交按钮之前输入的值。

我怎样才能使用jQuery

以下是我用于表单的代码:

<form method="post" action="">
<input type="text" id="name" name="name" />
<input type="text" id="email" name="email" />
<input type="text" id="subject" name="subject" />
<input type="text" id="url" name="url" />
<input type="checkbox" id="showdetails" name="showdetails" /> Show URL Details
<input type="submit" value="Submit" />
</form>`

我需要将URL输入字段的值传递给php字符串(一旦用户检查showdetails checkbok),我就可以在后台处理它以显示基于url的信息。

2 个答案:

答案 0 :(得分:6)

鉴于此html:

<form method="post" action="">
<input type="text" id="name" name="name" />
<input type="text" id="email" name="email" />
<input type="text" id="subject" name="subject" />
<input type="text" id="url" name="url" />
<input type="checkbox" id="showdetails" name="showdetails" /> Show URL Details
<input type="submit" value="Submit" />
</form>

jQuery(复选框)

$(function() {
  $("showdetails").on("click",function() {
    var url = $("#url").val();
    if (url && $(this).is(":checked")) {
      $.get("relevantinfo.php",
        { "url": url },
        function(data){
          // do something with data returned
        }
      );
    }
    else {
      // clear relevant info here
    }
  });
});

接收端:Retrieving POST Data from AJAX Call to PHP

答案 1 :(得分:3)

在文本字段中使用 onchange 事件获取输入字符串。

参考:https://developer.mozilla.org/en-US/docs/DOM/element.onchange

然后使用该字符串内容,调用AJAX函数。

function load(string) {
    var xmlhttp;
    if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "YOUR_URL", true);
    xmlhttp.send();
}

根据评论中的建议,使用jquery + AJAX。 对于jquery,

$.ajax({
    url: 'ajax/test.html',
    success: function(data) {
        $('.divClass').html(data);
        alert('Load was performed.');
    }
});