2010-11-28 65 views
0

有没有什么办法可以在不使用GET或POST或REQUEST的情况下获得html文本字段的值?或者,有没有什么办法让字段值以相同的形式或页面在其他地方。PHP Javascript变量帮助

这适用于诸如“詹姆斯”,“系统”等直接值。唯一的问题是我如何使它与HTML字段值

像工作:

<input type = "submit" onclick = " 
<?php $username = "kut"; 
$result = checkname($username); 
if($result) 
{ 
?> alert("success"); <?php 
} 
else {?> alert("failed"); <?php 
}?> 
"> 

我怎么能代替“吉”与ID =“用户名”文本字段的值?

<?php $username = "?>document.getElementById('username').value;<?php"?> 

或类似的东西...... ???

总之,我需要一个HTML场其他地方在同一个页面中的JavaScript函数里面,在上述javascriptFunction使用PHP ......像()函数

+2

您的服务器不运行任何东西,除非发生GET或POST(或任何动词)......您在这里要做什么? – 2010-11-28 16:26:28

+1

您在提交前是否尝试检查文本字段值?听起来像你试图做一个Ajax电话。 – kjy112 2010-11-28 16:34:12

回答

0

1>我建议的价值使用jQuery来处理Ajax部分。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script> 
    function check_user(){ 
     var user_el=document.getElementById('username'); 
     if(!user_el){ return false; } 
     var username=user_el.value; // this could all be replaced with $('username').val() 
     $.getJSON('check_var.php',{"user":username},function(data){ 
      if(data.result=='error'){ alert('something was wrong with the PHP stuff'); } 
      alert(data.userstatus); 
      }); 
     } 
</script> 

2>在PHP方面,由于check_var.php,你需要一个脚本,需要用户名输入,检查数据库,并发送回JSON作为结果的数据。

<?php 
if(!isset($_GET['user']){ exit; } 

$username=preg_replace('#['^\w\d]#','',$_POST['user']); 

//do your database query. I assume you have that part all set. 
//since I'm not filling in all of that, you'll need to fix this next part to work with your system 
//let's pretend it's like $found=check_user($username); 
//be sure to use mysql_real_escape_string or prepared statements on the $username var since you're working with user input 

$status=$some_db_error ? 'error' : 'success'; 

$results=array('result'=>$status,'userstatus'=>$found); 
header('Content-Type: application/json'); 
echo json_encode($results); 
1

您不能在JavaScript中直接调用PHP函数。您可以在页面加载前通过echo从php中设置JavaScript值。 PHP在客户端执行时在服务器上执行。

2

您对客户机 - 服务器体系结构的工作原理有着根本性的误解。

PHP可以在距离JavaScript所在的地方数千英里远的地方执行,甚至几天。

第一个PHP生成整个页面,所有的HTML,所有的JavaScript源代码(未执行),然后,PHP完成后,浏览器开始运行JavaScript。

这两个不能像你想要的那样混合在一起,即使它在PHP源代码中看起来如此。

虽然您可以使用AJAX或类似方式再次与服务器通信,但您可能应该先了解客户端 - 服务器架构如何工作,并尝试在没有AJAX的情况下解决问题(例如,在服务器端处理所有数据或在客户端处理所有数据侧)。