2013-07-17 27 views
0

我有两个文件,一个运行PHP计算一次,并将它们存储到JavaScript中的变量。第二个文件包含mySQL查询以发送到数据库。我怎样才能从第一个文件发送javascript变量,第二个文件并将它们存储为变量。发布JavaScript变量来分离.PHP文件(使用Ajax?)

-I使用.load()函数加载第二个.php文件。所以它不会刷新并重新指向第二个.php文件。

这可能与出ajax? 如果它只适用于ajax,你如何设置它(对ajax来说是新的)?

$("#st").click(function() 
{ 
var s = $("#st").val(); 
var a = $("#AA").val(); 
var t = ((s*1)*(a*1)+(a*1)*(1/3)).toFixed(2); 
var c = (t*95).toFixed(2); 
var text = $('#st').children("option:selected").text(); 
document.getElementById('Tim').innerHTML ='<p>'+ t +' </p>'; 
document.getElementById('Obj').innerHTML ='<p>'+ text +'</p>'; 
document.getElementById('Tot').innerHTML ='<p>$'+ c +'</p>'; 
}); 

var Customer = <?php echo json_encode($q);?>; 
var Dr= <?php echo json_encode($o);?>; 
var Pd = <?php echo json_encode($p);?>; 
var Qp = <?php echo json_encode($a);?>; 
var Qs = <?php echo json_encode($r);?>; 
var Cam = <?php 
     if($Camera==1){ 
      $CameraOutput = "XL"; 
      echo "XL"; 
      } 

     if($Camera==2){ 
      $CameraOutput = "SL"; 
      echo "SL"; 
      } 
    ?>; 
+2

发布您的代码! – dude

+0

从GET传递数据到第二个PHP? – Desu

+1

从客户端(即javascript)获取数据到服务器(即PHP)需要某种形式的连接,因此您需要POST/GET/etc,这可能会或可能不会使用AJAX。如果您的问题真的是如何通过AJAX提交和处理,那么您可以在网上找到许多教程。如果您遇到了实现问题,请向我们展示一些代码,然后我们可以尝试并提供帮助。 – ernie

回答

3

AJAX是异步JavaScript和XML的缩写。如果你想运行你的第二个php文件而不重定向到它,你可以使用AJAX,因为它会在后台运行你的第二个php文件。使用JQuery的AJAX非常易于使用。

http://api.jquery.com/jQuery.ajax/

示例获取的:一些数据保存到服务器,并通知用户一旦完成:

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", location: "Boston" } 
}).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 
+0

我明白这一点。但是,我有两个问题。首先是“约翰”和“波士顿”你发布的变量?其次,我将如何在second.php文件中获取这些变量? –

+0

我正在使用jQuery! –

+0

@ T.J。 Crowder抱歉,只是认为jQuery正是他所期待的,因为它比没有它要容易得多。 – deacs

2

编辑:你在你正在使用jQuery另一个答案的评论中提到,所以我编辑的下方。

这可能与出ajax?

是的,但你可能不想。你会创建一个表单元素,并设置其action,并设置其method,将字段添加到它,submit荷兰国际集团它做到这一点:

var form; 
form = $("<form>") 
    .attr("action", "/path/to/php/file.php") 
    .attr("method", "POST"); 
$("<input type=hidden>") 
    .attr("name", "fieldName1") // I'm assuming hardcoded field names 
    .val(fieldValue1)   // And values coming from variables 
    .appendTo(form); 
$("<input type=hidden>") 
    .attr("name", "fieldName2") 
    .val(fieldValue2) 
    .appendTo(form); 
form[0].submit(); // Note the [0], so we're using `submit` on the actual HTMLFormElement 

请注意,响应将取代当前窗口。

如果它只适用于ajax,你如何设置它(新的ajax)?

这里有成千上万的例子。 :-)这是另一个:

$.ajax({ 
    url: "/path/to/php/file.php", 
    type: "POST", 
    data: {"fieldName1": fieldValue1, "fieldName2": fieldValue2}, 
    success: function() { 
     // Called if the request succeeds 
    }, 
    error: function() { 
     // Called if the request succeeds 
    } 
}); 
+0

+1,我认为你的意思是'field.value = fieldValue1;'和'field.value = fieldValue2;'而不是覆盖名字:) – MrCode

+0

你的fieldName1和fieldValue1有什么区别?另外你如何找到这些值在second.php文件中? –

+0

@MrCode:糟糕! (随意修正这种事情:-)) –