我需要帮助的是获得设置PHP变量的成功,以便#result div获得一个值(不是JavaScript .html,我需要它来设置PHP变量)。
如果不使用PHP变量设置新URL,是否可以这样做?
换句话说,我可以将JavaScript变量发送到PHP变量而不执行此操作:
send javaScript variable to php variable
HTML
<div id="hidden_slidersize"></div>
<script type="text/javascript">
$(function(){
if ($('body').width() >= 960) {
var sizeOfSlider = 500;
} else {
var sizeOfSlider = ($('body').width())/2;
}
$('#hidden_slidersize').html('<form id="dataform" method="post" name="hiddentrick_form" action="data.php"><fieldset><input id="hiddentrick" name="hiddentrick" type="hidden" value="' + sizeOfSlider + '" /><input class="datasubmit" type="submit" value="senddata" /></fieldset></form>');
});
</script>
<div id="result"><?php echo $sizeofslider ?></div>
表单Javascript
$(document).ready(function() {
$(document).on('submit', 'form#dataform', function () {
$.ajax({
type: 'POST',
url: 'data.php',
data: $('#dataform').serialize(),
dataType:'html',
success: function(data) {alert(data);},
error: function(data) {
//AJAX request not completed
alert('error');
}
});
return false;
});
});
表单php
<?php
if( isset($_POST) ){
$sizeofslider = $_POST['hiddentrick'];
echo $sizeofslider;
}
?>
更新
好像我没有说清楚。 我需要做的是将一个javascript变量变成一个php变量,然后用它来计算。
以下是之后的计算:
<?php
$czes = array(
'sort_order' => 'desc',
'sort_column' => 'post_date',
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'meta_key' => '',
'meta_value' => '',
'authors' => '',
'child_of' => 4,
'exclude_tree' => '',
'number' => '',
'offset' => 0,
'post_type' => 'page',
'post_status' => 'publish'
);
$pages = get_pages($czes);
foreach ($pages as $page) { ?>
<?php $postmetapic1 = get_post_meta($page->ID, 'pic1', true); ?>
<?php $postmetapic2 = get_post_meta($page->ID, 'pic2', true); ?>
<?php $postmetapic3 = get_post_meta($page->ID, 'pic3', true); ?>
<?php
$holder_width_first=0;
if (!empty($postmetapic1)) {$holder_width_first++;}
if (!empty($postmetapic2)) {$holder_width_first++;}
if (!empty($postmetapic3)) {$holder_width_first++;}
$holder_width= $holder_width_first*$sizeofslider;
?>
<div id="s_sli_hol_<?php echo $page->ID ?>" class='slider_holder small_slider_holder' style="width: <?php echo $holder_width ?>px">Here's the img-tags</div>
<?php } ?>
答案 0 :(得分:0)
试试这个。我找到了解决问题的方法
将此添加到您的html页面
<form id="TheForm" method="post">
<input type="hidden" name="something" id="hi"/>
</form>
我更改了一些你的jquery代码
$(document).ready(function() {
$(document).on('submit', 'form#dataform', function () {
$.ajax({
type: 'POST',
url: 'data.php',
data: $('#dataform').serialize(),
dataType:'html',
success: function(data) {
alert(data);
document.getElementById("hi").value=data;
},
error: function(data) {
//AJAX request not completed
alert('error');
}
}).done(function() {
$("#TheForm").submit();
});
return false;
});
});
然后在你的div #result
<div id="result"><?php $sizeofslider= $_POST["something"]; $echo $sizeofslider ?></div>
希望这有帮助,谢谢
答案 1 :(得分:-1)
首先,当您还使用AJAX时,无需使用古老的<form>
和发布表单。所以我删除了所有这些。使它更简单。
接下来,您需要一种方法将值存储在服务器上,以后再次访问它。一种方法是使用PHP Sessions($ _SESSION变量)。
请注意,我将PHP处理器文件的名称更改为 your_php_file.php 。根据需要更改它,但请确保在所有位置(文件系统,ajax1和ajax2)更改它。
这是一个可以做你想做的工作示例。
HTML和javascript / jQuery:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
if ($('body').width() >= 960) {
var sizeOfSlider = 500;
} else {
var sizeOfSlider = ($('body').width())/2;
}
$.ajax({
type: 'POST',
url: 'your_php_file.php',
data: 'hiddentrick=' +sizeOfSlider,
dataType:'html',
success: function(data) {alert(data);},
error: function(data) {
//AJAX request not completed
alert('error');
}
});
$('#mybutt').click(function() {
$.ajax({
type: 'POST',
url: 'your_php_file.php',
data: 'showss=yes',
dataType:'html',
success: function(data) {
alert(data);
$('#result').html(data);
},
error: function(data) {
//AJAX request not completed
alert('error');
}
});
});
}); //END $(document).ready()
</script>
</head>
<body>
<div id="result"><?php echo $sizeofslider ?></div>
<input type="button" id="mybutt" value="Show PHP var"/>
</body>
</html>
<强> your_php_file.php 强>
<?php
session_start();
if( isset($_POST) ){
if (isset($_POST['showss'])) {
echo 'Hidden value: ' . $_SESSION['sos'];
}else{
$sizeofslider = $_POST['hiddentrick'];
$_SESSION['sos'] = $sizeofslider;
echo $sizeofslider;
}
}else{
echo 'No POST data';
}