我有这个简单的代码作为PHP文件的一部分,这个代码的目的是在客户端执行job1.js文件(必须这样做),在这个文件中我有一个名为{{的函数1}}返回3个变量。必须将返回的变量传递给服务器以进行进一步的工作。
job1()
该函数正在执行而没有任何问题,它正在执行一些内部字符串操作(非常无聊:))并返回3个变量。
我的问题是如何从<script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type = "text/javascript" >
$(document).ready(function() {
// $jobJSPath[0] holds the path to the job1.js file
var scriptPath = "<?php echo $jobJSPath[0]; ?>";
$.getScript(scriptPath, function(data, textStatus, jqxhr) {
// Call the function
job1();
window.alert( data ); // Data, actually it has only the content of the file as a string
window.alert( textStatus ); // Success
window.alert( jqxhr.status ); // 200
});
});
</script>
函数中获取3个返回变量并返回其输入。我搜索了很多,甚至尝试了
job1()
因为var result = eval('(' + data + ')');
console.log(result);
变量将函数保存为字符串但仍然没有成功,所以在此站点的其他页面上建议使用此选项。
编辑:data
和data
有相同的文字:
'function job1(){ var text =“”; var vocabulary =“ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz0123456789”;
job1
}“
答案 0 :(得分:3)
java脚本用于客户端,php用于服务器端,只需使用ajax调用并使用post传递数据,在job1()完成后你得到了返回的数组,只需使用这样的ajax调用:
var yourdata=job1();
var postdata= [{"1": yourdata[0], "2": yourdata[1], "3": yourdata[2]}];
$.ajax({
type: POST,
data: postdata,
url: "test.php", //stands for the php file you want to send the data to
}).done(function() {
//do something.....
})
on the server side fetch the data using $_POST["1"] for example
答案 1 :(得分:0)
那就是我到现在为止所拥有的
<script type = "text/javascript" >
$(document).ready(function() {
// $jobJSPath[0] holds the path to the job1.js file
var scriptPath = "<?php echo $jobJSPath[0]; ?>";
$.getScript(scriptPath, function(data, textStatus, jqxhr) {
// Call the function
var job = job1();
window.alert( data ); // Data, actually it has only the content of the file as a string
console.log(job); // shows all the return parameters from job1();
window.alert( textStatus ); // Success
window.alert( jqxhr.status ); // 200
// push the return parameters into result array
var result = [];
$.each(job, function(index, value) {
//window.alert(index + ": " + value);
result.push(value);
});
// post the results back to the same page
$.ajax({
type: 'POST',
data: {result : result},
url: 'executedJobs.php',
}).done(function(data) {
var redirectUrl = "executedJobs.php";
var form = $('<form action="' + redirectUrl + '" method="post">' +
'<input type="hidden" name="result" value="'+ data +'" />' +
'</form>');
$('body').append(form);
$(form).submit();
});
});
});
</script>
然后在我使用的executedJobs.php
页面上获得结果
<?php
$myArray = $_REQUEST['result'];
echo "myArray:<br/>";
print_r($myArray);
?>
它的工作原理是这样,唯一的一件事就是我myArray
之前每次都会回复两次print_r($myArray);
。