doudi1750 2017-08-17 05:41
浏览 44
已采纳

在ajax中发布php变量(没有jQuery)

I guess this is simple question, but not for me. I have got simple calendar, where is only month:

<div id="calendar">
<?php
$month_num=date('m');
echo $month_num . " ";
echo '<span onclick="next(this.value);" value="' . $month_num . '";> &gt; </span>';
?>
</div>

my script is:

function next(str) {

xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
   document.getElementById("calendar").innerHTML = this.responseText;
   }
};
xmlhttp.open("POST","test3.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("n=" + str);
}

and test3.php is:

<?php
if (isset($_POST['n'])) {
    $n = $_POST['n'];
}
if (isset($n)) { 
    echo $n + 1;} 
?>

Problem is, $n is undefined and result is "1" . I guess there should be some nice simple way how to post $n.

Thank you.

  • 写回答

1条回答 默认 最新

  • dqrm8199 2017-08-17 05:50
    关注

    A span does not have a value attribute according to specifications. So you will have a hard time access it in javascript. Try using the data-* attributes for that.

    echo '<span onclick="next(this.getAttribute(\'data-value\'));" data-value="' . $month_num . '";> &gt; </span>';
    

    May I also suggest that, since you are posting, and relying on a click event, a button would be much more appropriate.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 怎样才能让鼠标沿着线条的中心线轨迹移动
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?